下面以“设置”应用程序Settings.apk为例。用WinRAR打开文件后,看到以上介绍的六项内容。现在,即使你已经对文件解压,你还是无法直接阅读每个文件的内容。为了读出这些文件的内容,从而进行进一步的修改和编辑,你就必须具有相应的工具了。
二、packagelnstaller原理简述
应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理*作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。 Android应用安装有如下四种方式 1.系统应用安装――开机时完成,没有安装界面 2.网络下载应用安装――通过market应用完成,没有安装界面 3.ADB工具安装――没有安装界面。 4.第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。 应用安装的流程及路径应用安装涉及到如下几个目录: system/app:系统自带的应用程序,无法删除。 data/app :用户程序安装的目录,有删除权限。安装时把APK文件复制到此目录。 data/data :存放应用程序的数据。 data/dalvik-calche:将APK中的dex文件安装到此目录下。(dex为dalvik虚拟机的可执行文件) PackageManagerService处理各种应用的安装,卸载,管理等工作,开机时由systemServer启动此服务 (源文件路径:android\frameworks\base\services\java\com\android\server\PackageManagerService.java) PackageManagerService服务启动的流程: 1.首先扫描安装“system\framework”目录下的jar包 1.scanDirLI(mFrameworkDir,PackageParser.PARSE_IS_SYSTEM,scanMode | SCAN_NO_DEX); 2.第二步扫描安装“system\app”目录下的各个系统应用 scanDirLI(mSystemAppDir,PackageParser.PARSE_IS_SYSTEM, scanMode); 3.第三步扫描“data\app”目录,即用户安装的第三方应用 scanDirLI(mAppInstallDir, 0, scanMode); 4.第四步扫描" data\app-private"目录,即安装DRM保护的APK文件(目前没有遇到过此类的应用)。 scanDirLI(mDrmAppPrivateInstallDir,0, scanMode | SCAN_FORWARD_LOCKED); |