1. 什么是apk文件
(1)定义:APK是Android Package Kit的缩写,即Android安装包。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是 Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。APK文件结构为:
- META-INF:Jar文件中常可以看到
- res:存放资源文件的目录
- AndroidManifest.xml:程序全局配置文件
- classes.dex:Dalvik字节码
- resources.arsc:编译后的二进制资源文件
(2)机制:Android在运行一个程序时首先需要UnZip,再通过dexdump命令可以反编译,这样做对于程序的保密性和可靠性不是很高但 符合发展规律。Dalvik Vm的执行文件被打包为apk格式,最终运行时,加载器会解压apk并获取编译后的androidmanifest.xml文件中的permission 中相关的安全访问。
(3)root权限与签名:如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的,android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。但第三方程序并不是安放在这个文件夹的。
2. apk的打包
在Eclipse中,编译好的android project,在该project的bin目录下会自动生成一个apk文件,与J2ME不同,无需手动打包。只要代码有改动就自动 build,build出来的apk是签过名的,也可以在project右键菜单的Andoid Tools菜单下export签名的或未签名的apk。
3. 将apk安装到android simulator中
- 通过\android-sdk-windows-1.5_r1\tools\emulator.exe启动模拟器。这里要注意,这个命令只有在avd配置好后才可以使用,例如我有一个名为android3的avd,所以我要用如下方法启动emulator:
-scale 0.6
- 将要安装的apk文件copy到tools目录下(与emulator.exe同目录);
- cmd进入命令行输入,进入到\android-sdk-windows-1.5_r1\platform-tools\目录下,输入命令:adb install ../tools/***.apk
4. 将apk安装到android mobile中