1. Android平台架构图
Android的系统框架主要分为: 应用层(Application)、应用框架层(Android Framework)、运行时库(Runtime Libraries)、Linux内核(Linux core)。
应用层: 我们平时的应用开发就是这个层次,此外还包括系统自带的一些应用,如闹钟,摄像机,短信,通讯录等系统应用。使用java语言。
应用框架层: 一些系统应用的管理类,比如平时开发时使用的WindowManager类,我们可以通过改层控制一些系统事件,而不需要关心底层实现。
运行时库: 包括 C/C++的类库,为平台的不同组件使用,比如媒体框架(Media类的底层实现)等等。此外,还包括Dalvik虚拟机,Dalvik虚拟机(类似于java虚拟机),是 在针对移动设备的虚拟机,每个app都运行在Dalvik虚拟机里的一个独立的线程里。Android4.4引入了ART取代Dalvik, ART运行性能更流畅。
Linux内核: 使用linux系统管理的一些驱动,如内存管理、安全管理、蓝牙相机wifi、进程管理等等。
2. Android开发环境下相关术语
Dalvik::Android特有的虚拟机,不同于JVM, Dalvik更适合在移动设备上运行。
AVD: Android Virtual Device安卓虚拟设备,就是安卓虚拟机。
ADT: Android Development Tools 安卓开发工具,一般是Eclipse+ADT或者Android Studio.
SDK: Software Development Kit 软件开发工具包,包含了Android开发的基础类库
DDMS: Dalvik Debug Monitor Service 安卓调试工具
ADB: Android Debug Bridge 安卓调试桥,在sdk的platform-tools下,使用命令行调试。
DX工具: 将一个app下的所有.class文件打包成一个.dex文件
AAPT: Android Asset Packing Tool 安卓资源打包工具
R.java: 由AAPT根据APP中的资源文件自动生成。
3. ADB常用命令
查看设备: adb devices - 连接到计算机的安卓设备或者模拟器会显示出来
安装: adb install <apk文件路口>, 将apk安装到安卓设备上adb install -r <apk文件路口> 重新安装,adb install -s <apk文件路口>安装到sd卡。
卸载: adb uninstall <软件名>, 可以加上-k参数,表示保留软件配置和缓存
...
4. APP程序打包与安装流程
开发好的Android项目 → 编译打包 → .apk安装包文件(.dex、.arsc、resources、其它) + 未编译的资源文件(图片等)+AndroidManifest.xml → 签名 → 通过adb安装在设备上。
安装过程: copy apk包文件到/data/app/下 → 在/data/data文件下创建一个为包名的文件夹(主要存放数据db文件) 。
/data/system/package.list和package.xml分别存放应用的包名和签名信息。
5. Android Studio下的Android项目结构
开发时主要关注app目录下的结构
build:构建目录,相当于Eclipse下的bin
libs: 依赖的包
main: java代码
res: 资源文件
build.gradle: Gradle构建脚本