Android学习对各阶段的要求
基本要求
1、掌握Android应用开发基本流程;
2、掌握Android应用结构;
3、掌握Android界面编程;
4、掌握Android四大组件。
中级要求:
1、掌握Android I/O编程;
2、掌握SQLite编程;
3、掌握网络应用编程;
高级要求:
1、掌握Android 传感器编程;
2、掌握GPS和Map编程;
3、掌握。。。。。。。;
Android:环境搭建
JDK
需要完整JDK,单纯JRE不行
JDK 1.5 或 JDK1.6
Eclipse
http://www.eclipse.org/downloads/
SDK(Software Development Kit)
Android开发的各种工具集(模拟器、调试、打包、安装工具等)
ADT(Android Development Tools)
为Eclipse定制的插件(DDMS、Hierarchy Viewer、TraceView)
版本需与SDK level一致
http://developer.android.com/sdk/index.html
几个关键词以及目录作用
Internal Storage:ROM,存放安装到模拟器上的APP
Device:屏幕分辨率
assets:资源,不会生成ID,通过AssetManager以二进制流的形式访问
libs:第三方JAR包,必要时加入BuildPath
关于项目发布
签名打包
签名打包的apk才能正式发布
非签名打包
adt调试时会自动生成apk
workspace/工程名/bin/xxx.apk
安卓系统架构之分层架构
应用程序层
应用程序框架层
系统库及Android运行时
Linux内核
系统库及android运行时的注意事项:
避免直接调用Linux内核
Android运行时包括核心库和Dalvik虚拟机
核心库:Java核心功能函数及Android核心库
每个Android程序一个Dalvik虚拟机;
dx工具将Java字节码转化为dex格式的中间码
Linux内核
非标准Linux内核
使用C语言编写
功能:安全管理、内存管理、进程管理、协议模型、驱动管理、电源管理等。
四大组件
Activity
通俗地认为是用户界面,一个应用程序包含多个Activity
生命周期
需要在AndroidManifest.xml中进行声明
通过堆栈来管理Activity
Service
不直接与用户交互,没有用户界面
能够长期在后台运行
比Activity的优先级高,不会被轻易终止
需要在AndroidManifest.xml中进行声明
两种启动方式
绑定式(不求同生、但求同死)
独立启动式
Broadcast Receiver
实现全局监听,完成不同组件之间的通信
没有用户界面,但可启动Activity或用NotificationManager来通知用户
需要在AndroidManifest.xml中进行声明
用途:
用户主动检查版本更新,有更新时发送广播,由Receiver接收,并以Dialog的方式提示用户更新
服务器推送通知,淘宝、银行等的通知
ContentProvider
支持多个应用程序的数据共享,是跨应用共享数据的唯一方法
应用场景
一个短信接收应用A,将接收到的陌生短信的发信人添加到联系人管理应用B中
方法1:A直接去操作B所记录的数据,比如SPS、文件、数据库等
方法2:B通过ContentProvider暴露自己的数据操作接口,其他应用都可访问
当一个应用需要把自己的数据暴露给其他程序使用时,通过ContentProvider暴露接口,不管该应用是否启动,其他应用都可以通过ContentResolver来操作数据,包括增删改查