ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:411.59KB ,
资源ID:20694017      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20694017.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级Android复习点上届遗留复习资料Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级Android复习点上届遗留复习资料Word文档下载推荐.docx

1、4.手势识别(Android Gesture)是用来侦测、处理手势相关动作的技术。Gesture大致可以分为两类:一类是触摸屏手势,另一类是输入法手势。 触摸屏手势比较简单,通常就是按下、抬起、滑动、翻页这几种。Android系统为我们提供了手势识别工具GestureDetector,当我们接收到用户触摸消息时,将这个消息交给GestureDetector去加工,我们通过设置监听器获得GestureDetector处理后的手势。 输入法手势就是在触摸屏上手绘一个形状,这个形状可以由一个或者多个笔画构成。创建完成之后,系统会自动保存手势动作在mnt/sdcard/gestures里面。把gest

2、ures文件复制到工程/res/raw下,就可以在项目里面使用这些手势了。一 简答题:1. XX地图应用/* 获取API key(1) 获取Maps API key需要两样东西:应用的signing certificate和它的package name。(2) 获取这个key之后,把它加在应用程序的AndroidManifest.xml文件里即可。*/(1)注册XX账号,并登录。(有XX账号的话直接登录)(2)申请Key 安全码的组成规则为:Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名)。 获取Android签名证书的sha1值,可以在eclip

3、se中直接查看:windows - preferance - android - build。 包名是Android应用程序本身在AndroidManifest.xml 中定义的名称:(3)下载Android SDK v3.4.0XX地图SDK v3.4.0为开发者提供了便捷的显示XX地图数据的接口,通过以下几步操作,即可在您的应用中使用XX地图数据。第一步:创建并配置工程第二步:在AndroidManifest中添加开发密钥、所需权限等信息1) 在application中添加开发密钥2) 添加所需权限 android.permission.USE_CREDENTIALS第三步,在布局xml文

4、件中添加地图控件第四步,在应用程序创建时初始化 SDK引用的Context 全局变量第五步,创建地图Activity,管理地图生命周期2.Handler android: Handler概念理解与运用 android.os.Handler是Android SDK中处理定时操作的核心类。通过Handler类,可以提交和处理一个Runnable对象。这个对象的run 方法可以立刻执行,也可以在指定时间之后执行(可以称为预约执行)。handler类允许你发送消息和处理线程消息队列中的消息及runnable对象。handler实例都是与一个线程和该线程的消息队列一起使用,一旦创建了一个新的handle

5、r实例,系统就把该实例与一个线程和该线程的消息队列捆绑起来,这将可以发送消息和runnable对象给该消息队列,并在消息队列出口处处理它们。handler类有两种主要用途: (1)、按照时间计划,在未来某时刻,对处理一个消息或执行某个runnable实例。 (2)、把一个对另外线程对象的操作请求放入消息队列中,从而避免线程间冲突。Android在设计时引入了Handler消息机制,每一个消息发送到主线路的消息队列中,消息队列遵循先进先出原则,发送消息不会阻塞线程,而接收线程会阻塞线程。Handler允许发送并处理Message消息,Message对象通过主线程的MessageQueue消息队列

6、相关联的Message和Runnable对象进行存取。每个Handler实例对Message消息发送和接收与对应主线程和主线程的消息队列有关。当创建一个新的Handler时,Handler就属于当前主线程,主线程MessageQueue消息队列也同步创建,即Handler会绑定到创建该Handler的主线程/消息队列上。然后,Handler就可以通过主线程的消息队列发送和接收Message消息对象了。handler机制的原理 andriod提供了 Handler 和Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageE

7、xchange)。 1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从MessageQueue取出)所送来的消息。 3) Message Queue(消息队列):用来存放线程放入的消息。 4)线程:UI thread 通常就是mainthread,而Android启动程序时会替它建立一个MessageQueue。Handler的特性1)Android里没有全局Message Queue

8、消息队列,每个Activity主线程都有一个独立的Message Queue消息队列,消息队列采用先进先出原则。不同APK应用不能通过Handler进行Message通信,同一个APK应用中可以通过Handler对象传递而进行Message通信。2)每个Handler实例都会绑定到创建它的线程中(一般位于主线程,即Activity线程),但是Handler实例可以在任意线程中创建(可以在主线程或子线程中创建)3)Handler发送消息使用Message Queue消息队列,每个Message发送到消息队列里面;发送消息采用异步方式,所以不会阻塞线程。而接收线程则采用同步方式,所以会阻塞线程,所

9、以当Handler处理完一个Message对象后才会去取下一下消息进行处理。HANDLE( 句柄)是 Windows 操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即 句柄。 句柄指的是一个核心对象在某一个进程中的 唯一索引,而不是 指针。由于 地址空间的限制, 句柄所标识的内容对进程是不可见的,只能由 操作系统通过进程句柄列表来进行维护。 句柄列表:每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如 信号量, 线程,和文件等,进程中的所有线程都可以访问这些资源。3.传感器应用程

10、序的开发分为以下几个步骤:(1)调用Context.getSystemService(SENSOR_SERVICE)方法获取传感器管理服务。(2)调用SensorManager的getDefaultSensor(int type)方法,获取指定类型的传感器。(3)在Activity的onResume()中,调用SensorManager的registerListener(SensorEventListener listener, Sensor sensor, int rate)方法注册监听。(4)实现SensorEventListener接口中下列两个方法,监听并取得传感器Sensor的状态。

11、Public abstract void onAccuracyChanged(Sensor sensor, int accuracy) / 监听传感器精度变化public abstract void onSensorChanged(SensorEvent event) / 监听传感器值变化 方向传感器(Orientation)简称为O-sensor,主要感应方位的变化。现在已经被SensorManager.getOrientation()所取代,我们可以通过磁力计MagneticField和加速度传感器Accelerometer来获得方位信息。该传感器同样捕获三个参数,分别代表手机沿传感器坐标

12、系的X轴、Y轴和Z轴转过的角度。 磁力传感器(MagneticField)简称为M-sensor,该传感器主要读取的是磁场的变化,通过该传感器便可开发出指南针、罗盘等磁场应用。磁场传感器读取的数据同样是空间坐标系三个方向的磁场值,其数据单位为uT,即微特斯拉。接下来通过对之前方向传感器案例的更改,来完成磁场数据的读取。 重力传感器(Gravity)简称GV-sensor,主要用于输出重力数据。在地球上,重力数值为9.8,单位是m/s2。坐标系统与加速度传感器坐标系相同。当设备复位时,重力传感器的输出与加速度传感器相同。 加速度传感器(Accelerometer)简称G-sensor,主要用于感

13、应设备的运动。该传感器捕获三个参数,分别表示空间坐标系中X、Y、Z轴方向上的加速度减去重力加速度在相应轴上的分量,其单位均为m/s2。 光传感器(Light),主要用来检测设备周围光线强度。光强单位是勒克斯(lux),其物理意义是照射到单位面积上的光通量。光传感器的开发与之前介绍过的各种传感器的开发步骤基本相同,只是监测的是SENSOR_LIGHT,即捕捉光的强度。四程序题1.HttpURLConnection接口创建一个项目,项目中包括四个Activity类,通过主Activity类的三个按钮和一个文本输入框分别跳转到另外三个Activity网页信息显示活动。在每个跳转后的Activity活

14、动的生命周期函数OnCreat()里,调用HttpURLConnection网络接口向服务发出请求,获取服务器返回信息。(1)主activitypublic class LabFourTestOneMainActivity extends Activity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); / StrictMode.setThreadPolicy(new St

15、rictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build(); / StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build(); Button b_One = (Button)findViewById(R.

16、id.button1); Button b_Two = (Button)findViewById(R.id.button2); Button b_Three = (Button)findViewById(R.id.button3); EditText e_One = (EditText)findViewById(R.id.editText1); b_One.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) / TODO Auto-generated method stub Int

17、ent i = new Intent(LabFourTestOneMainActivity.this,GetOneActivity.class); LabFourTestOneMainActivity.this.startActivity(i); ); b_Two.setOnClickListener(new View.OnClickListener() Intent i = new Intent(LabFourTestOneMainActivity.this,GetTwoActivity.class); b_Three.setOnClickListener(new View.OnClickL

18、istener() Intent i = new Intent(LabFourTestOneMainActivity.this,PostOneActivity.class); EditText e_One = (EditText)findViewById(R.id.editText1); String str = e_One.getText().toString(); i.putExtra(text, +str); public boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the a

19、ction bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true;(2)跳转后的第一个Activity页面显示信息是通过Get方式请求服务器返回信息不携带参数public class GetOneActivity extends Activity String str; String httpUrl; TextView t_One; Handler h_One = new Handler() Override public void handleMessage(Messa

20、ge msg) / TODO Auto-generated method stub super.handleMessage(msg); t_One.setText(msg.getData().toString(); ; / TODO Auto-generated method stub this.setContentView(R.layout.getone); t_One = (TextView)findViewById(R.id.textView1); t_One.setMovementMethod(ScrollingMovementMethod.getInstance(); httpUrl

21、 = http:/202.118.201.19:80/softwareschool/index2.html; new Thread(new Runnable() public void run() String resultData = URL url = null; try url=new URL(httpUrl); catch (MalformedURLException e) / TODO Auto-generated catch block e.printStackTrace(); if(url != null) try HttpURLConnection urlConn = (Htt

22、pURLConnection)url.openConnection(); InputStreamReader in = new InputStreamReader(urlConn.getInputStream(); BufferedReader buffer = new BufferedReader(in); String inputLine = null; while(inputLine=buffer.readLine()!=null) resultData += inputLine+n in.close(); urlConn.disconnect(); if(resultData! Bun

23、dle b =new Bundle(); b.putString(megpost, resultData); Message meg = new Message(); meg.setData(b); h_One.sendMessage(meg); else Log.d(test,读取页面内容 为空!); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); else Log.d(url为空! ).start();(3)第二个Activity页面显示信息是通过Get方式携带参数请求服务器返回信息public class GetTwoActivity extends Activity super.onCreate(sa

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1