Android基础
SDK目录介绍
◆add-ons:该目录下存放第三方为android平台开发的附加功能系统、刚解压缩时该目录为空
◆build-tools:
◆docs:该文件夹存放了android SDK开发文件盒API文档等
◆extras:该文件下存放了Goolge提供的USB驱动、Intel提供的硬件加速等附加工具包
◆platforms:该目录下存放不同版本的android系统、刚解压时该目录为空
◆platform-tools:该文件夹下存放了android平台相关工具
◆samples:该文件夹下存放了不同android平台的示例程序
◆sources:该文件夹下存放了android4.2的源代码
◆system-images:
◆temp:
◆tools:该文件夹下存放了大量android开发、调试工具
>>AVD Manager.exe:该程序是AVD (Android虚拟设备)管理器、通过该工具可以管理AVD
>>SDK manager.exe:该程序就是Android SDK管理器、通过该工具可以管理android SDK
Android常用开发工具用法
1.3.1在命令行创建、删除和浏览AVD
在命令行下管理AVD需要借助于android命令(位于android SDK安装目录的tools字目录下)、如果直接执行android命令将会启动android SDK管理器。除此之外、该命令还支持如下子命令:
》list:列出及其上所有已经安装的android版本和AVD设备
》list avd:列出机器上所有已经安装的AVD设备
》create avd:创建一个AVD
》move avd:移动或者重命名一个AVD设备
》delete avd:删除一个AVD设备
》update avd:升级一个AVD设备使之符合新的SDK环境
》create project:创建一个新的android项目
》update project:更新一个已有的android项目
》create test-project:创建一个新的android测试项目
》update test-project:更新一个已有的android测试项目
如果查看当前系统上已经安装的android版本及已经安装的AVD设备、则运行android list或者android list avd命令即可
如果要创建一个全新的avd设备、可执行如下命令:
android create avd –n<avd名称> -t<android版本> -b<CPU构架> -p<avd设备保存位置> -s<选择avd皮肤>
在上面的命令中、只有-n、-t选项是必需的,其余的-b、-p、-t选项都是可选的。如果不设置-p,创建avd设备默认保存在%ANDROID_SDK_HOME%.android/avd路径下
例如:需要创建一个名为leegang的vad设备,则可输入如下命令:
android create avd -n leegang -t 10 -b armeabi-7a
上面命令中10是android4.2的代号
1.3.2使用android模拟器(Emulator)
Android模拟器就是一台运行在电脑上的虚拟手机、在android SDK安装目录tools子目录下有一个emulator.exe(另外还有emulator-arm.exe和emulator-x86.exe)它们都是模拟器,几乎可以模拟真实手机的绝大部分功能
使用emulator.exe启动模拟器有两种用法:
》emulator -avd <avd名称>
》emulator -data 镜像文件名称
如:emulator -avd TEST_AVD
第二种方法是直接使用指定镜像文件来运行avd、例如::
emulator -data myfile //以myfile作为镜像文件来运行avd设备
1.3.3使用DDMS进行调试
Android提供了一个DDMS调试环境、DDMS的全称是Dalvik Debug Monitor Service,它是一个功能非常强大的调试环境,运行如下命令:
ddms.bat
设备面板:DDMS窗口右上角的面板、该面板会列出当前所有运行的手机,并列出个手机内的所有进程信息
信息输出面板:该面板位于DDMS窗口下方,相当于传统java应用控制台
线程跟踪面板:该面板可用于查看指定进程内所有正在执行的线程的状态:如果需要让该面板显示指定进程内线程的状态、1在设备面板上按下“Show thread updates”按钮;2在设备面板上选中需要查看的进程
Heap内存跟踪面板:该面板可用于查看指定进程内堆内存的分配和回收信息、如果需要让该面板显示指定进程内Heap的回收和分配状态、1在设备面板上按下“Show heap updates”按钮;2在设备面板上选中需要查看的进程
模拟器控制面板:该面板用于让模拟器模拟拨打电话、发送短信等,还可以虚拟设置模拟器的位置信息等
文件管理对话框:该对话框默认并有显示出来,可以通过单击DDMS窗口上的主菜单”Device->File Explorer…”来打开
1.3.4Android Debug Bridge(ADB)的用法
Android Debug Brigge(ADB)是一个功能非常强大的工具、它位于android SDK安装目录的platform-tools子目录下、ADB工具既可完成模拟器文件与电脑文件的相互复制、也可以安装APK应用,甚至可以直接切换到android系统中执行Linux命令
ADB工具的功能很多、如:
》查看当前运行的模拟器:
adb -devices
》电脑与手机之间文件的相互复制
默认情况下、adb工具总是操作当前正在运行的模拟器、如果需要将电脑文件复制到模拟器中、可以使用adb push命令:
adb push d:/abc.txt /sdcard/ 此命令是将电脑D盘下abc.txt文件复制到手机的/sdcard/目录下
adb pull /sdcard/xyz.txt d:/ 此命令是将手机上的/sdcard/目录下xyz.txt文件复制到电脑上D盘根目录下
》启动模拟器的shell窗口
Android平台的内核是基于Linux的,有时开发者希望直接打开android平台的shell窗口、这样就可以在该窗口内执行一些常用的Linux命令,如lsmkdir m等。此时可以使用如下命令:
adb shell
》安装、卸载APK程序
APK程序就是android程序的发布包,虽然使用java开发了android应用,但并不是直接将java二进制文件复制到手机上即可,为了把android应用打包成一个可发布的APK包,还需如下3步:
1、 通过DX工具队*.class文件进行转换。转换后得到一个*.dex文件
2、 通过AAPT工具打包所有的资源文件。打包后通常得到*.ap_文件
3、 通过apkbuilder工具把前两部得到的*.dex和*.ap_文件打包成APK包
打包完成后、就可以通过ADB工具来安装、卸载APK程序。
使用ADB安装APK的命令格式如下:
adb install test.apk
如果希望从android系统中删除指定软件包,则可以使用如下命令:
adb uninstall [-k] <package>
上面的命令格式指定删除<package>代表APK包,其中-k表示只是删除该应用程序,但保留该程序所用的数据和缓存目录
1.3.5使用DX编译android应用
Android所使用的虚拟机是Dalvik虚拟机、Dalvik虚拟机并不直接运行java二进制文件、而是运行它特有的*.dex文件,因此我们需要通过DX工具将android应用的*.class文件转换为*.dex文件
DX工具的常见命令格式如下:
dx --dex [--dump-to=<file>] [--core-library] [<file>.class | <file>.{zip,jar,apk} | <directory>]
上面的命令中[--dump-to=<file>]指定生成的*.dex文件的文件名;而--core-library指定需要转换的*.class、*.zip、*.jar文件或者目录
例如如下命令:
dx -dex --dump-to=g:a.dex --core-blibrary d:helloworldin
将d:helloworldin路径下所有二进制文件转换为g:根目录下的a.dex文件
1.3.6使用Android Asset Packaging Tool(AAPT)打包资源
当开发android应用时、该应用中可能会包含许多资源文件、包括各种图片、音频文件等、当需要发布一个APK包时、这些资源文件也是必不可少的。
AAPT工具也支持很多子命令:
》aapt l[ist]:列出资源压缩包内的内容
》aapt d[ump]:查看APK包内的指定内容
》aapt p[ackage]:打包生成资源压缩包
》aapt r[emove]:从压缩包中删除指定文件
》aapt a[dd]:向压缩包中添加指定文件
》aapt v[ersion]:打印AAPT的版本
从上面不难看出、应用使用aapt p 命令来打包资源、AAPT工具打包资源包时常用的语法格式如下:
Aapt -A <附件资源路径> -S <资源路径> -M <Android应用清单文件> -I <额外添加包> And -F 目标文件的路径
例如:
aapt -A assets -S res -M AndroidManifest.xml -I D:android-sdk-windowsplatformsandroid-9atformsandroid-9android.kar -F bin es.ap_
上面的命令将当前目录下assets子目录、res子目录、AndroidManifest.xml文件都打包到bin es.ap_资源包中
1.3.7使用mksdcard管理虚拟SD卡
在创建AVD设备时创建一个虚拟SD卡,实际上还可以使用mksdcard命令来单独创建一个虚拟存储卡
mksdcard命令的语法格式如下:
mksdcard [-l label] <size> <file>
上面的命令格式中size 指定虚拟SD卡的大小,file指定保存虚拟SD卡的文件镜像
例如:
mksdcard 64M D:avds.androidavdleegang.avdsdcard.img
创建了一个大小为64M的虚拟SD卡,该SD卡对应的镜像文件为D:avds.androidavdleegang.avdsdcard.img
如果希望在启动模拟器时使用指定虚拟SD卡、则在启动模拟器时增加-sdcard <file>选项、其中file代表了虚拟SD卡的文件镜像。例如如下命令:
emulator -avd crazyit -sdcard d:sdcard.img
1.5.1创建一个android应用
android create project -n HellWorld -t 8 -p HelloWorld -k com.deleerhai.hellworld -a HelloWorld
上面的命令中,-n选项指定创建项目的名称;-t选项指定项目针对的android平台;-p选项指定该项目的保存路径;-k选项指定该项目的包名;-a选项指定Activity的名称
1.7.1使用Eclipse对android应用签名
右键单击android项目,选择Android Tools -> Export Signed Application Package菜单选项
1.7.2使用命令对APK包签名
1、创建keystore库,JDK的安装目录下的bin子目录下提供了keytool.exe工具来生成数字证书。在命令窗口输入如下命令:
Keytool -genkeypair -alias deleerhai.keystore -keyalg RSA -validity 400 -keystore deleerhai.keystore
上面命令的各种选项说明如下:
-genkeypair:指定生成的数字证书
-alias:指定生成数字证书的别名
-keyalg:指定生成数字证书的算法,使用RSA算法
-validity:指定生成数字证书的有效期
-keystore:指定所生成的数字证书的存储路径
2、生成为签名的APK安装包。在Eclipse中右键单击android项目,选择Android Tools -> Export Unsigned Application Package选项、打包一个未签名的APK安装包
3、使用jarsigner命令对未签名的APK安装包进行签名。JDK的安装目录下的bin子目录下提供了jarsigner.exe工具进行签名。在命令行输入如下命令:
jarsigner -verbose -keystore yang2.keystore -signedjar Deleerhai_exi.apk Deleerhai.apk yang2.keystore
上面的命令各种选项说明:
-verbose:指定生成详细输出
-keystore:指定数字证书的存储路径
-signedjar:该选项的三个参数分别为签名后的APK包、未签名的APK包、数字证书的别名
示例命令:
jarsigner -verbose -keystore yang2.keystore -signedjar C:UsersAdministratorDesktopTestActionBarDropDownNav_sig.apk C:UsersAdministratorDesktopTestActionBarDropDownNav.apk yang2.keystore
4、使用zipalign.exe工具优化APK安装包。Zipalign.exe是android自带的一个档案整理文具、它可以用于优化APK安装包、从而提升android应用与系统之间的交互效率,提升应用程序的运行速度。在命令行输入如下命令:
zipalign -f -v 4 Deleerhai_exi.apk Deleerhai_exi_zip.apk
上面的命令说明如下:
-f:指定强制覆盖已有的文件
-v:指定生成详细输出
4:指定档案整理所基于的字节数、通常指定为4,也就是基于32位进行整理
Deleerhai_exi.apk和Deleerhai_exi_zip.apk分别指定整理前的APK和整理后生成的APK
示例命令:
zipalign -f -v 4 C:UsersAdministratorDesktopTestActionBarDropDownNav_sig.apk C:Use
rsAdministratorDesktopTestActionBarDropDownNav.apk