androidAPK应用安装过程以及默认安装路径

合集下载

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的安装路径

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软件图文教程

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安装文件简介

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软件安装教程

Android软件安装教程

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

Android中App安装位置详解

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软件安装教程

播放器软件安装教程
安卓播放器的软件安装教程
播放器能够安装的的软件包(apk)一般来说是要支持TV版本的,手机版本的apk和安卓平板版本的apk一般是支持的不算很好,可能是安装不上去。

(QQ软件qqforpad(平板用的qq软件)的apk支持播放器)。

首先,您将下载的apk放在U盘的根目录,推荐这样好找
一些
双击C盘就进入C盘的根目录,双击D盘就进入D盘的根目录)打开我的电脑,打开U盘,直接在最外层就能找到的位置。

如下图
将U盘插入播放器(以C9为例)
进入到本地媒体
选择可移动磁盘(也就是您的U盘)
可以看到您要安装的apk
移动到上面点击OK

点击OK可以打开。

安装成功。

注意!U盘要是FAT32格式的,这样比较容易被机器识别。

APK安装流程概述

APK安装流程概述

APK安装流程概述⼀. APK安装简介APK为Android Package的缩写。

Android应⽤安装有如下四种⽅式:1.系统应⽤安装――开机时完成,没有安装界⾯;2.⽹络下载应⽤安装――通过market应⽤完成,没有安装界⾯;3.ADB⼯具安装――没有安装界⾯;4.第三⽅应⽤安装――通过SD卡⾥的APK⽂件安装,有安装界⾯,由packageinstaller.apk应⽤处理安装及卸载过程的界⾯。

应⽤安装涉及到如下⼏个⽬录:system/app----------------系统⾃带的应⽤程序,获得adb root权限才能删除;data/app-------------------⽤户程序安装的⽬录,安装时把apk ⽂件复制到此⽬录;data/data-------------------存放应⽤程序的数据;data/dalvik-cache---------将apk中的dex⽂件安装到dalvik-cache⽬录下(dex⽂件是dalvik虚拟机的可执⾏⽂件,其⼤⼩约为原始apk⽂件⼤⼩的四分之⼀)。

⼆. 系统应⽤安装1. 了解须知:(1). 对于在/system/app和/data/app⽬录下的APK⽂件,在PackageManagerService的启动过程中,会扫描安装。

(2).PackageManagerService由system_server启动,它全⾯负责应⽤包的安装,卸载,权限检查等⼯作。

(3).在每次开机的时候,PackageManagerService都会在其构造函数中,对指定的⽬录的APK进⾏扫描。

对于没有安装的APK⽂件会触发安装过程。

2. 实现原理:(1). 开机启动PackageManagerService,通过SystemServer.startBootstrapServices()启动。

1 public static PackageManagerService main(Context context, Installer installer,2 boolean factoryTest, boolean onlyCore) {3 PackageManagerService m = HwServiceFactory.getHuaweiPackageManagerService(context, installer,4 factoryTest, onlyCore);5 ServiceManager.addService("package", m);6 return m;7 }(2). PackageManagerService初始化,执⾏构造⽅法,分为六个重要步骤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用安装过程以及默认安装路径分类:一:安装过程是类似或的文件格式。

通过将文件直接传到模拟器或手机中执行即可安装。

应用安装有如下四种方式1. 系统应用安装――开机时完成,没有安装界面2. 网络下载应用安装――通过应用完成,没有安装界面3. 工具安装――没有安装界面。

4. 第三方应用安装――通过卡里的文件安装,有安装界面,由应用处理安装及卸载过程的界面。

应用安装的流程及路径应用安装涉及到如下几个目录:系统自带的应用程序,无法删除用户程序安装的目录,有删除权限。

安装时把文件复制到此目录存放应用程序的数据将中的文件安装到目录下(文件是虚拟机的可执行文件,其大小约为原始文件大小的四分之一)安装过程:复制安装包到目录下,解压并扫描安装包,把文件(字节码)保存到目录,并目录下创建对应的应用数据目录。

卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。

一、系统应用安装:处理各种应用的安装,卸载,管理等工作,开机时由启动此服务(源文件路径:\\\\\\\\)服务启动的流程:1. 首先扫描安装“\”目录下的包1. (,| );2.第二步扫描安装“\”目录下的各个系统应用(, );3.第三步扫描“\”目录,即用户安装的第三方应用(, 0, );4.第四步扫描" \"目录,即安装保护的文件(目前没有遇到过此类的应用)。

(,0, | );安装应用的过程1(, , ) 遍历安装指定目录下的文件2(,, , ,) 安装文件3(, , ,, , )通过解析安装包获取到安装包的信息结构4(,); 实现文件复制的安装过程(源文件路径:\\\\)二、从上下载应用:应用需要使用账户登录才可以使用,选择某一应用后,开始下载安装包,此过程中,在手机的信号区有进度条提示,下载完成后,会自动调用的接口安装,调用接口如下:( , ):文件下载完成后保存的路径:处理返回的安装结果:安装的参数,从上下载的应用,安装参数为()接口函数的安装过程:1 (, , ,):安装完成后此名称保存在里,一般为,不是关键参数2 = (, );把文件复制到临时目录下的临时文件3 ( ,, ,, )解析临时文件,获取应用包名= ((), 0);4.判断如果带有参数,则调用(,,, ,, , ,)5.如果没有,则调用(,,, ,, , ,);6 (, , ,, , )以后的流程,与开机时的应用安装流程相同。

三、从工具安装() 是自带的管理设备的工具,通过命令行的方式也可以为手机或模拟器安装应用,其入口函数源文件为(源文件路径:\\\\\\\\\\)命令行的形式为<> ,还可以带安装参数如:"""" "" ""函数()中判断参数""――""——"" ——""——我们常用的参数为,表示覆盖安装手机上已安装的同名应用。

从上下载的应用,也是直接传入这个参数安装的。

与调用同样的接口完成应用安装。

( , )四、第三方应用安装――通过卡里的文件安装把安装包保存在卡中,从手机里访问卡中的安装包,点击就可以启动安装界面,系统应用处理这种方式下的安装及卸载界面流程,如下图:负责解析包,判断是否是可用的文件创建临时安装文件并启动安装确认界面,列出解析得到的该应用基本信息。

如果手机上已安装有同名应用,则需要用户确认是否要替换安装。

确认安装后,启动,调用安装接口完成安装。

(, );其它:1. 的内部类实现了监听目录的功能:当把某个拖到目录下时,可以直接调用完成安装。

2.手机数据区目录“”文件中,包含了手机上所有已安装应用的基本信息,如安装路径,申请的等信息。

二:更改默认安装路径如果你是一个应用开发者,没用系统全套代码,你只想更改你的的默认安装路径的话,可以按下面方法来更改:在文件标签中添加属性这个属性设置的是默认安装位置,共有三个有效值,、、对应表表示自动,由系统决定安装位置,如果系统手机内存足够,默认安装在手机内存里,如果手机内在不够,则会安装在T卡内安装在手机内存< """""""1""1.0">如果你是一个手机方案开发者,能改层的代码,你希望下载到手机里的都默认优先安装到T卡的话,可以按下面方法更改:在文件里,将这个值,改为,就可以了.默认下载就会下到T卡里卡不存在或者满了时,才会下到手机内部. 或者如果在应用的里,指定了属性为手机内部存储的话,是会存在手机内部的.没指这定的话这个值指定什么,就下到哪里安装在T卡里的应用,有几个缺点:1:因为装载T卡是在系统启动完成后,才开始装载的.所以如果应用装在T卡里的话,那么它是收不到开机启动完成的这个广播的2:如果T卡损坏或者T卡拨出来了,那么装在T卡里的应用是启动不了的.系统应用安装的详细过程,老罗有篇文章写得很透彻,这里引用下:系统在启动的过程中,会启动一个应用程序管理服务,这个服务负责扫描系统中特定的目录,找到里面的应用程序文件,即以为后缀的文件,然后对这些文件进解析,得到应用程序的相关信息,完成应用程序的安装过程,本文将详细分析这个过程。

应用程序管理服务安装应用程序的过程,其实就是解析析应用程序配置文件的过程,并从里面得到得到应用程序的相关信息,例如得到应用程序的组件、、和等信息,有了这些信息后,通过这个服务,我们就可以在系统中正常地使用这些应用程序了。

应用程序管理服务是系统启动的时候由组件启动的,启后它就会执行应用程序安装的过程,因此,本文将从启动服务的过程开始分析系统中的应用程序安装的过程。

应用程序管理服务从启动到安装应用程序的过程如下图所示:下面我们具体分析每一个步骤。

1.这个函数定义在文件中:[]1.2.{3. ......4.5. 1([] );6.7. ......8.9. ([] ) {10. ......11.12. 1();13.14. ......15. }16.17. ......18.}组件是由进程负责启动的,启动的时候就会调用它的函数,这个函数主要调用了方法1来做一些系统初始化的工作。

2. 1这个函数是一个方法,实现在文件中:[]1. {2.3."C" ();4.5. 1(* , )6.{7. ();8.}9.10./*11. * .12. */13. [] = {14./* , , */15. { "1", "([;)V", (*) 1 },16.};17.18. (* )19.{20. (, "",21. , ());22.}23.24.};这个函数很简单,只是调用了函数来进一步执行操作。

3.函数实现在库中,源代码位于文件中:[]1."C" ()2.{3. (" ()");4.5. <> (());6.7. <> = ();8. (": \n", ());9.10. <> = ();11. >()->(, (), 0);12.13. [];14. ("", , "1");15. ((, "1") 0) {16.17. ();18. }19.20.21. ();22.23. , 't24. ,25. (>()) {26.27.28. ();29.30.31. ();32.33.34. ();35.36.37. ();38. }39.40. .41.42. .43.44. 's (),45. .46. (" : .\n");47.48. * = ();49.50. (" : .\n");51. >("", "2");52.53. ,54. . ,55. .56. (>()) {57. (" : .\n");58. ()->();59. ()->();60. (" : .\n");61. }62.63. ;64.}这个函数首先会初始化、、、、和这几个服务,然后就通过系统全局唯一的实例变量的来调用的2函数了。

关于这个实例变量的相关资料,可能参考前面一篇文章应用程序进程启动过程的源代码分析一文。

4.这个函数定义在文件中:[]1./*2.* a .3.*/4. ( * , * )5.{6. * ;7. ;8. ;9.10. = ();11. ( )12. ;13.14. = (, );15. ( ) {16. (": ''\n", );17. ;18. }19. = >(, , "()V");20. ( ) {21. (": \n", , );22. ;23. }24.25. >(, );26.27. ;28.}这个函数调用由参数指定的类的静态成员函数,这个静态成员函数是由参数指定的。

上面传进来的参数的值为"",而参数的值为"2",因此,接下来就会调用类的2函数了。

5. 2这个函数定义在文件中:[]1.2.{3. ......4.5. 2() {6. (, " !");7. = ();8. ("");9. ();10. }11.}这个函数创建了一个线程,服务就是这个线程中启动的了。

这里调用了实例的函数之后,下面就会执行这个实例的函数了。

6.这个函数定义在文件中:[]1. {2. ......3.4.5. () {6. ......7.8. = ;9.10. ......11.12. ...13. {14. ......15.16. (, " ");17. = (,18. );19.20. ......21. } ( e) {22. ("", " ", e);23. }24.25. ......26. }27.28. ......29.}这个函数除了启动服务之外,还启动了其它很多的服务,例如在前面学习和的几篇文章中经常看到的服务,有兴趣的读者可以自己研究一下。

7.这个函数定义在文件中:[]1. {2. ......3.4. ( , ) {5. m = (, );6. ("", m);7. m;8. }9.10. ......11.}这个函数创建了一个服务实例,然后把这个服务添加到中去,是系统进程间通信机制的守护进程,负责管理系统中的对象,具体可以参考浅谈成为进程间通信()机制守护进程之路一文。

相关文档
最新文档