android APK应用安装过程以及默认安装路径
APK安装过程及原理

PackageInstaller 原理简述应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。
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-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。
卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。
一、系统应用安装: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文件(目前没有遇到过此类的应用)。
AndroidAPP的安装路径

AndroidAPP的安装路径⼀、安装路径在哪?应⽤安装涉及到如下⼏个⽬录:system/app 系统⾃带的应⽤程序,⽆法删除。
data/app ⽤户程序安装的⽬录,有删除权限。
安装时把apk⽂件复制到此⽬录。
data/data 存放应⽤程序的数据。
data/dalvik-cache 将apk中的dex⽂件安装到dalvik-cache⽬录下(dex⽂件是dalvik虚拟机的可执⾏⽂件,其⼤⼩约为原始apk⽂件⼤⼩的四分之⼀)。
APP安装过程:复制APK安装包到data/app⽬录下,解压并扫描安装包,把dex⽂件(Dalvik字节码)保存到dalvik-cache⽬录,并data/data⽬录下创建对应的应⽤数据⽬录。
APP卸载过程:删除安装过程中在上述三个⽬录下创建的⽂件及⽬录。
⼆、如何查看安装路径⽂件夹?使⽤Eclipse的DDMS⼯具可以查看。
Android DDMS连接真机(已ROOT),通常会出现⽤file explore看不到data/data⽂件夹的问题。
原因是权限不够,以下是解决办法:问题是没有权限,⽤360⼿机助⼿或豌⾖荚也是看不见的。
简单的办法是⽤RE⽂件管理器(英⽂全名root explorer,⼿机需授予root权限),把data和data/data设置成777权限。
注意:⽤RE管理器打开看到默认不是777的,只是可读写还是不够的。
以下是打开权限的⽅法:如此⼀来,DDMS就可以查看data/data⽂件夹,但是该⽬录下的⼦⽂件夹,例如com.android.XXX,还需要继续放开权限。
微信扫⼀扫,关注玖零⽇记,获取更多相关资讯及源码 -- 虽⽆⾯朝⼤海,依旧春暖花开。
在Android上安装apk软件图文教程

Android软件APK安装方法很简单,下面我就和大家分享一下如何安装APK文件到Android模拟器的图文教程。
1) 首先启动Android模拟器,在Android SDK的Tools文件夹中找到Emulator文件,双击emulator.exe 即可启动模拟器2) 复制需要安装的APK文件到Android SDK的Tools文件夹中(APK和emulator.exe同文件夹),这里我们演示安装的为MobileQQ1.0_Android_Beta2Build0246.apk文件3) 执行Windows 开始菜单=> 所有程序=> 附件=> 命令提示符或通过Win+R 组合键调出运行对话框输入cmd 单击确定即可。
4) (由于我的Android SDK安装路径为E盘,所以需要定位模拟器tools目录) 在cmd命令提示符中输入E: 回车,如图2第一行,接下来输入cd study\Android开发\android-sdk-windows\tools后回车,由于我没有配置环境变量,所以最后执行E:\study\Android开发\android-sdk-windows\tools\adb install MobileQQ1.0_Android_Beta2Build0246.apk执行安装,5) 最后在Android模拟器点击下图中的按键,在展开的界面中就可以看到我们安装好的MobileQQ1.0_Android_Beta2Build0246.apk到此我们就完成了对MobileQQ1.0_Android_Beta2Build0246.apk程序的安装。
下面我让我们来体验一下在Gphone模拟器上运行MobileQQ1.0的效果吧!启动界面:在这里较之在手机要慢上一些。
对于MobileQQ1.0的使用,大家都很熟悉了,我就不多啰嗦了。
按照此方法安装其他软件我试着访问了一下凤凰网:在这里我们能看到网站的整体效果,点击任意一处即可放大浏览希望我的劳动能够帮助一部分朋友!转载请注明网址来源。
android apk安装文件简介

如图1是android apk文件,其格式是.apk。
将quickoffice.apk文件更改其扩展名为.zip,结果如图2。
图1图将其解压,结果如下图:APK是Android Package的缩写,即Android安装包。
APK是类似Symbian Sis或Sisx的文件格式。
通过将APK文件直接传到Android模拟器或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 编译后的二进制资源文件总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和WindowsMobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的Windows Gadgets或者说WPF也采用了这种构架方式。
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
Android软件安装教程

游戏娱乐
摇摆可乐罐 黄金矿工 世嘉模拟 Solo 植物大战僵尸 星际塔防 罪恶都市 实况足球 QQ斗地主 纽约之夜
大富翁
任天堂模拟
FIFA
碧湖垂钓
都市赛车
K.O Boxing
91牧场
仙剑
美女找茬
都市摩天楼
• 这是会出现接受权限,不管它,直接点确
定,然后就会自动下载软件了。
• 在通知里面我们能看到软件正在下载,下
载进度也会显示。等待下载完成吧!
• 下载完成后会自动安装,安装成功会有提示。
到此为止就完成了在电子市场里面下载安装 软件。简单吧,懂了吗?不懂就问!
• 补充说明一
• 补充说明二,在电子市场里面挑选软件的时候,我
安装的软件运行情况不错哈!
方法二
在任意有下载源的网站下载安装包到电脑, 这里推荐几个比较好的下载源: 这里推荐几个比较好的下载源:
安致中文网
/Index.shtml
电玩巴士旗下Android专门站,偏向Android机测评、导购、刷机、使用教程等 安致中文网 /bbs/
们能看到后面有个免费的提示,要说明一下的是, 大多数软件都是免费的,只有少数软件是要收费的, 如果有试用收费软件的需求,那就要自己掏腰包了。
总结
• 三种方法都介绍完了,在本人的耐心的 详细的讲解中,想必大家都能学会安卓 系统手机的软件下载安装方法了,希望 本教程对大家能有所帮助。 • 懂了吗?不懂就问!
Android主题BBS,注册会员数逾72万,网友自共享应用软件下载 机锋网
/bbs/
Android主题BBS,注册会员数逾6万,网友自共享应用软件下载
下载的安装包后缀明一定是APK格式,将 下载的安装包后缀明一定是APK格式,将 这个APK格式的安装包复制到内存卡任意 这个APK格式的安装包复制到内存卡任意 位置,当然这个位置目录你自己要知道。
如何安装APK文件到自己的android手机里

如何安装APK文件到自己的android手机里?APK是Android Package的缩写,即Android的安装包。
手机上首先要进行一些设置,设置——应用程序——勾选“未知源”,设置——应用程序——开发——勾选“USB调试”。
下面以Eclipse开发的第1个Android Project(Hello World)为例,进行演示。
2013.8.26日自己动手,将电脑中的HelloWorld.APK文件安装到手机里的过程第1步:准备一根连接手机与电脑的USB接口的数据线第2步:电脑和手机上均要安装“360手机助手”第3步:将磁盘上的APK文件发送到手机准备发送发送成功第4步:安装单击“打开”第5步:运行,查看效果会看到有一条输出信息。
再看下“手机桌面”上的图标:再看下手机“任务管理器”中的APK程序:方法一运用APK安装器,就是将APK文件安装到手机上的一个PC端软件,我们首先需要下载一个USB驱动,在PC上安装好“APK安装器”,这个软件会自动关联你的APK程序,只要双击一下APK程序就可以自动安装到你的手机里了。
点击下载APK安装器(HiAPK Installer)1.0版正式发大家可能问我们的手机和电脑连不上怎么办?那说明你没有安装驱动?驱动在哪下?其实不用下驱动在这里我们推荐一个软件就是91助理FOR android系统的。
你把你的android手机和电脑连接后打开91for android手机助理,然后他就会自动帮你下载驱动,同时会连接手机。
界面上显示我的G1和电脑已连接方法二大家需要先下载一个资源管理器软件,可以通过网络在MARKET中下载一个资源管理器,这里推荐ASTRO。
你也可以直接下载过方法一把资源管理器安装好,之后再安装软件只要把".APK"的安装文件拷贝到SD卡里,之后使用资源管理器软件在SD卡下打开".APK"的安装文件,直接安装即可.点击下载该文件com[1].metago.astro.apk(大小507k)然后把在电脑上下载好了的APK文件丢到电脑上SD移动设备,然后从手机的资源管理器上找到该文件,安装就行。
Android中App安装位置详解

Android中App安装位置详解Android应用可以安装在本机自带存储,同时也可以安装到外部存储(SD卡)。
自从API 8后也就是Android2.2后,我们能使APK安装到外部存储上。
这是一个可选的特性,在工程的manifest文件中可以进行配置:<manifest xmlns:android="/apk/res/android"nnn android:installLocation="preferExternal"nnn ... >nnnnnn 如上,如果声明为preferExternal,则指定APK安装到外部存储上,但是系统不保证一定能安装到外部存储上,所以叫preferExternal,例如当外部存储空间已经满了,这时系统会将应用程序安装到内部存储上。
用户能够在内部存储与外部存储之间移动应用程序。
还有一种声明选择,那就是“auto”,如果将属性值声明为这个,安装位置将由系统去决定。
想要将应用程序安装到外部存储上,需要保证以下条件都满足:1.在manifest文件中指定android:installLocation属性值为“preferExternal”或“auto";2.确保当前系统API级别为8或以上,android:minSdkVersion值必须是8以上(Android 2.2);nnnnnn 需要特别注意的是,用户连接手机到PC并开启大容量存储模式时,也就是读取外部存储卡内容时,所有安装到外部存储的应用程序将会被系统全部杀掉!如果你的应用中存在在以下情况下,应用程序不推荐安装到外部存储上:1.应用程序中有运行后台Service2.注册了通知服务例如AlarmManager3.第三方输入法,如果将第三方输入法安装到外部存储上,如果当前外部存储被挂起,则第三方输入法会失效并切回系统输入法4.墙纸主题应用,外部存储被挂起时,会切换为系统默认墙纸或主题5.App桌面组件工具,外部存储被挂起是,会将Widgets从桌面移除6.注册了开机广播的应用,因为系统是先发出开机广播然后再加载外部存储设备的,这里有个顺序问题。
apk软件安装教程

播放器软件安装教程
安卓播放器的软件安装教程
播放器能够安装的的软件包(apk)一般来说是要支持TV版本的,手机版本的apk和安卓平板版本的apk一般是支持的不算很好,可能是安装不上去。
(QQ软件qqforpad(平板用的qq软件)的apk支持播放器)。
首先,您将下载的apk放在U盘的根目录,推荐这样好找
一些
双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录)打开我的电脑,打开U盘,直接在最外层就能找到的位置。
如下图
将U盘插入播放器(以C9为例)
进入到本地媒体
选择可移动磁盘(也就是您的U盘)
可以看到您要安装的apk
移动到上面点击OK
件
点击OK可以打开。
安装成功。
注意!U盘要是FAT32格式的,这样比较容易被机器识别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
android APK应用安装过程以及默认安装路径分类: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-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)安装过程:复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik 字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。
卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。
一、系统应用安装:PackageManagerService处理各种应用的安装,卸载,管理等工作,开机时由systemServer 启动此服务(源文件路径:android\frameworks\base\services\java\com\android\server\PackageManagerService.jav a)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);安装应用的过程1.scanDirLI(Filedir, int flags, int scanMode) 遍历安装指定目录下的文件2.scanPackageLI(FilescanFile,File destCodeFile, FiledestResourceFile, int parseFlags,int scanMode) 安装package文件3.scanPackageLI(File scanFile, File destCodeFile, FiledestResourceFile,PackageParser.Package pkg, intparseFlags, int scanMode)通过解析安装包parsePackage获取到安装包的信息结构4.mInstaller.install(pkgName,pkg.applicationInfo.uid,pkg.applicationInfo.uid); 实现文件复制的安装过程(源文件路径:frameworks\base\cmds\installd\installd.install)二、从market上下载应用:Google Market应用需要使用gmail账户登录才可以使用,选择某一应用后,开始下载安装包,此过程中,在手机的信号区有进度条提示,下载完成后,会自动调用Packagemanager 的接口安装,调用接口如下:public voidinstallPackage(final Uri packageURI, final IPackageInstallObserver observer,final int flags)final Uri packageURI:文件下载完成后保存的路径final IPackageInstallObserver observer:处理返回的安装结果final int flags:安装的参数,从market上下载的应用,安装参数为-r (replace)installPackage接口函数的安装过程:1.public voidinstallPackage(final Uri packageURI, final IPackageInstallObserverobserver, final int flags,final String installerPackageName)final StringinstallerPackageName:安装完成后此名称保存在settings里,一般为null,不是关键参数2.FiletmpPackageFile = copyTempInstallFile(packageURI, res);把apk文件复制到临时目录下的临时文件3.private voidinstallPackageLI(Uri pPackageURI,int pFlags, boolean newInstall,String installerPackageName,File tmpPackageFile, PackageInstalledInfo res)解析临时文件,获取应用包名pkgName = PackageParser.parsePackageName(tmpPackageFile.getAbsolutePath(), 0);4.判断如果带有参数INSTALL_REPLACE_EXISTING,则调用replacePackageLI(pkgName,tmpPackageFile,destFilePath,destPackageFile, destResourceFile,pkg, forwardLocked,newInstall, installerPackageName,res)5.如果没有,则调用installNewPackageLI(pkgName,tmpPackageFile,destFilePath,destPackageFile, destResourceFile,pkg,forwardLocked, newInstall, installerPackageName,res);6.privatePackageParser.Package scanPackageLI(File scanFile, File destCodeFile, FiledestResourceFile,PackageParser.Package pkg, intparseFlags, int scanMode)scanPackageLI以后的流程,与开机时的应用安装流程相同。
三、从ADB工具安装Android Debug Bridge (adb) 是SDK自带的管理设备的工具,通过ADB命令行的方式也可以为手机或模拟器安装应用,其入口函数源文件为pm.java(源文件路径:android\frameworks\base\cmds\pm\src\com\android\commands\pm\pm.java)ADB命令行的形式为adb install <path_to_apk> ,还可以带安装参数如:"-l""-r" "-i" "-t"函数runInstall()中判断参数"-l"――INSTALL_FORWARD_LOCK"-r"——INSTALL_REPLACE_EXISTING"-i" ——installerPackageName"-t"——INSTALL_ALLOW_TEST我们常用的参数为-r,表示覆盖安装手机上已安装的同名应用。
从market上下载的应用,也是直接传入这个参数安装的。
runInstall与market调用同样的接口完成应用安装。
public voidinstallPackage(.UripackageURI,android.content.pm.IPackageInstallObserver observer, intflags,ng.String installerPackageName)四、第三方应用安装――通过SD卡里的APK文件安装把APK安装包保存在SD卡中,从手机里访问SD卡中的APK安装包,点击就可以启动安装界面,系统应用Packageinstaller.apk处理这种方式下的安装及卸载界面流程,如下图:PackageInstallerActivity负责解析包,判断是否是可用的Apk文件创建临时安装文件/data/data/com.android.packageinstaller/files/ApiDemos.apk并启动安装确认界面startInstallConfirm,列出解析得到的该应用基本信息。
如果手机上已安装有同名应用,则需要用户确认是否要替换安装。
确认安装后,启动InstallAppProgress,调用安装接口完成安装。
pm.installPackage(mPackageURI,observer, installFlags);其它:1. PackageManagerService.java的内部类AppDirObserver实现了监听app目录的功能:当把某个APK拖到app目录下时,可以直接调用scanPackageLI完成安装。
2.手机数据区目录“data/system/packages.xml”文件中,包含了手机上所有已安装应用的基本信息,如安装路径,申请的permission等信息。
二:更改默认安装路径如果你是一个apk应用开发者,没用android系统全套代码,你只想更改你的APK的默认安装路径的话,可以按下面方法来更改:在AndroidManifest.xml文件Manifest标签中添加android:installLocation属性android:installLocation这个属性设置的是默认安装位置,共有三个有效值,auto、internalOnly、preferExternal 对应表auto 表示自动,由系统决定安装位置,如果系统手机内存足够,默认安装在手机内存里,如果手机内在不够,则会安装在T卡内internalOnly 安装在手机内存<manifestxmlns:android="/apk/res/android "package="com.ray"android:installLocation="auto"android:versionCode="1"android:versionName="1.0">如果你是一个手机方案开发者,能改framework层的代码,你希望下载到手机里的APK都默认优先安装到T卡的话,可以按下面方法更改:在PackageParser.java文件里,将private static final intPARSE_DEFAULT_INSTALL_LOCATION 这个PARSE_DEFAULT_INSTALL_LOCATION值,改为PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL,就可以了.默认下载就会下到T卡里,T卡不存在或者满了时,才会下到手机内部. 或者如果在应用的AndroidManifest.xml里,指定了installLocation属性为手机内部存储的话,是会存在手机内部的.没指这定的话,PARSE_DEFAULT_INSTALL_LOCATION这个值指定什么,就下到哪里安装在T卡里的应用,有几个缺点:1:因为android装载T卡是在系统启动完成后,才开始装载的.所以如果应用装在T卡里的话,那么它是收不到开机启动完成的BOOT_COMPLETED这个广播的2:如果T卡损坏或者T卡拨出来了,那么装在T卡里的应用是启动不了的.系统应用安装的详细过程,老罗有篇文章写得很透彻,这里引用下:Android系统在启动的过程中,会启动一个应用程序管理服务PackageManagerService,这个服务负责扫描系统中特定的目录,找到里面的应用程序文件,即以Apk为后缀的文件,然后对这些文件进解析,得到应用程序的相关信息,完成应用程序的安装过程,本文将详细分析这个过程。