书签 分享 收藏 举报 版权申诉 / 37
上传文档赚钱

类型android应用安装流程课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:6100418
  • 上传时间:2023-05-29
  • 格式:PPT
  • 页数:37
  • 大小:2.11MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《android应用安装流程课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    android 应用 安装 流程 课件
    资源描述:

    1、CONFIDENTIAL B/system/etc/permissions/platform.xml&xxx,xml 加载系统feature,并为核心系统进程分配默认权限/data/system/packages.list 和packages.xml 系统中所有应用程序的安装信息/system/framework/system/app/data/dalvik-cachedex文件存放路径/data/data普通程序数据应用程序层PMS服务层程序文件层/data/system/users/userId/package-restrictions.xml Multi-User中记录各自enable和

    2、disable的component/system/priv-app/system/vendor/operator/app/data/app在SystemServer中启动PackageManagerService.mainnew PackageManagerService()并添加到ServiceManager中new installer(建立installer和installd的socket连接,最终在底层实现install,remove,dexopt等功能)创建PackageHandler Message Looper(安装/卸载请求)通过systemConfig获取到xml文件中信息re

    3、adPLW()(读取data/system/packages.xml)检查/system/etc/permissions/platform.xml中定制的library及/system/framework下的jar档案是否需要dex提取进行优化。若需要优化,会调用installer.dexopt提取dex到/data/dalvik-cache中调用scanDirLI扫描存放apk的各个目录系统应用安装通过scanPackageLI逐一解析AndroidManifest.xml文件,建立每个apk的配置结构,并将apk配置信息添加到全局列表进行管理。调用writeLPr()从全局列表中将apk信

    4、息写到packages.xml和packages.list中。手机内存手机内存Sdcarddata/data下的数据目录data/data下的数据目录data/dalvik-cache下的dex文件data/dalvik-cache下的dex文件data/app/目录下对应的apkstorage/sdcard/目录下对应的包信息For system app,卸载的是updated system app,还原回原始system app.是否有Install flag?Install flag的值是什么?是“INSTALL_INTERNAL”:只能安装在手机内存上“INSTALL_EXTERNAL

    5、”:只能安装在外部存储上AndroidManifest.xmlinstallLocation?否无定义,安装在手机内存Auto若手机内存空间足够,则apk安装在手机内存;若手机内存空间不够则安装在外部存储上“perferExternal”:表明安装到外部存储上“internalOnly”:只能安装到手机内存上n非MP6不建议开1)在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例2)将 Test APK的Source code 拷贝到 Test 文件夹下,删除/bin 和/gen 目录3)在 Test 目录下创建一个名为 An

    6、droid.mk的文件,内容如下:LOCAL_PATH:=$(call my-dir)include$(CLEAR_VARS)LOCAL_MODULE_TAGS:=optionalLOCAL_SRC_FILES:=$(call all-subdir-java-files)LOCAL_PACKAGE_NAME:=Testinclude$(BUILD_PACKAGE)4)打开文件 devicemediatekcommondevice.mk将 Test 添加到 PRODUCT_PACKAGES 里面。PRODUCT_PACKAGES+=Test 5)重新 build 整个工程1)在 packages

    7、/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例2)将 Test.apk 放到 packages/apps/Test 下面3)在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:LOCAL_PATH:=$(call my-dir)include$(CLEAR_VARS)#Module name should match apk name to be installedLOCAL_MODULE:=TestLOCAL_MODULE_TAGS:=optionalLOCAL_SRC_FILES:=$(LOCAL_MODUL

    8、E).apkLOCAL_MODULE_CLASS:=APPSLOCAL_MODULE_SUFFIX:=$(COMMON_ANDROID_PACKAGE_SUFFIX)LOCAL_PREBUILT_JNI_LIBS:=lib/armeabi/libtest.so lib/armeabi/libtest2.so lib/armeabi-v8aLOCAL_CERTIFICATE:=PRESIGNEDinclude$(BUILD_PREBUILT)若无so,删除LOCAL_PREBUILT_JNI_LIBS若有so,使用LOCAL_PREBUILT_JNI_LIBS列出所有so的路径,不要忘记使用不要

    9、忘记使用。标识符会将apk中的so抽离出来build进system/lib或者system/lib64中4)打开文件 devicemediatekcommondevice.mk 将 Test 添加到 PRODUCT_PACKAGES 里面。PRODUCT_PACKAGES+=Test 5)重新 build 整个工程注:如果App使用System Level的permission,需要預置到/system/priv-app底下(原在/system/app)。修改Android.mk,增加LOCAL_PRIVILEGED_MODULE:=true,以声明app需要放在/system/priv-ap

    10、p下。1)在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例2)将 Test.apk 放到 packages/apps/Test 下面3)在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:LOCAL_PATH:=$(call my-dir)include$(CLEAR_VARS)#Module name should match apk name to be installedLOCAL_MODULE:=TestLOCAL_MODULE_TAGS:=optionalLOCAL_SRC_FILES

    11、:=$(LOCAL_MODULE).apkLOCAL_MODULE_CLASS:=APPSLOCAL_MODULE_SUFFIX:=$(COMMON_ANDROID_PACKAGE_SUFFIX)#LOCAL_PRIVILEGED_MODULE:=trueLOCAL_MODULE_PATH:=$(TARGET_OUT_DATA_APPS)LOCAL_CERTIFICATE:=PRESIGNEDinclude$(BUILD_PREBUILT)4)打开文件 devicemediatekcommondevice.mk 将 Test 添加到 PRODUCT_PACKAGES 里面。PRODUCT_PA

    12、CKAGES+=Test 5)重新 build 整个工程注意:这个比不能卸载的多了一句LOCAL_MODULE_PATH:=$(TARGET_OUT_DATA_APPS)1在 vendormediatekproprietarybinary3rd-partyfree下面以需要预置的 APK 名字创建文件夹,以预置一个名为Test的APK为例2 将Test.apk 放入vendormediatekproprietarybinary3rd-partyfreeTest下面3 在vendormediatekproprietarybinary3rd-partyfreeTest 下面创建文件 Android

    13、.mk,文件内容如下LOCAL_PATH:=$(call my-dir)include$(CLEAR_VARS)#Module name should match apk name to be installedLOCAL_MODULE:=TestLOCAL_MODULE_TAGS:=optionalLOCAL_SRC_FILES:=$(LOCAL_MODULE).apkLOCAL_MODULE_CLASS:=APPSLOCAL_MODULE_SUFFIX:=$(COMMON_ANDROID_PACKAGE_SUFFIX)LOCAL_CERTIFICATE:=PRESIGNEDLOCAL_MO

    14、DULE_PATH:=$(TARGET_OUT)/vendor/operator/appinclude$(BUILD_PREBUILT)2 打开文件devicemediatekcommondevice.mk将 Test 添加到 PRODUCT_PACKAGES 里面。PRODUCT_PACKAGES+=Test3 然后重新build整个工程art :DexFile_isDexOptNeeded failed to open oat file/data/dalvik-cache/arm/systempriv-appxxxxxx.apkclasses.dex for file location/s

    15、ystem/priv-app/xxx/xxx.apk:Failed to open oat filename for reading:No such file or directorydex2oat:/system/bin/dex2oat-zip-fd=11-zip-location=/system/app/xxx/xxx.apk-oat-fd=12-oat-location=/data/dalvik-cache/arm/systemappxxxxxx.apkclasses.dex-instruction-set=arm-instruction-set-features=default-run

    16、time-arg-Xms64m-runtime-arg-Xmx512mPackageManager:init_copy idx=0:InstallParams1339f952 file=/data/local/tmp/skpye.apk cid=nullPackageManager:mcs_boundPackageManager:startCopy UserHandle-1:InstallParams1339f952 file=/data/local/tmp/skpye.apk cid=nullPackageManager:Apk copy donePackageManager:mcs_che

    17、ckackageManager:installPackageLI:path=/data/app/vmdl536406847.tmpPackageManager:Start parsing apk:nullPackageManager:Parsing done for apk:nullPackageManager:Renaming/data/app/vmdl536406847.tmp to/data/app/com.skype.rover-1PackageManager:Start installation for package:nullPackageManager:installNewPac

    18、kageLI:Package39add66f com.skype.roverPackageManager:Scanning package com.skype.roverPackageManager:Want this data dir:/data/data/com.skype.roverinstalld:do_install:com.skype.rover 10100 10100 defaultPackageManager:Linking native library dir for/data/app/com.skype.rover-1installd:do_linklib:com.skyp

    19、e.rover/data/app/com.skype.rover-1/lib/arm 0PackageManager:Resolved nativeLibraryRoot for com.skype.rover to root=/data/app/com.skype.rover-1/lib,isa=truePackageManager:Abis for packagecom.skype.rover are primary=armeabi secondary=nullPackageManager:Perform pre-dex opt for package:com.skype.roverPac

    20、kageManager:Running dexopt on:/data/app/com.skype.rover-1/base.apk pkg=com.skype.rover isa=arm vmSafeMode=falseinstalld:do_dexopt:/data/app/com.skype.rover-1/base.apk 50100 1 com.skype.rover arm 0dex2oat:/system/bin/dex2oat-zip-fd=15-zip-location=/data/app/com.skype.rover-1/base.apk-oat-fd=16-oat-lo

    21、cation=/data/dalvik-cache/arm/dataappcom.skype.rover-1base.apkclasses.dex-instruction-set=arm-instruction-set-features=default-runtime-arg-Xms64m-runtime-arg-Xmx512m-compiler-filter=interpret-onlyPackageManager:Dexopt done on:com.skype.roverPackageManager:New package installed in/data/app/com.skype.

    22、rover-1PackageManager:Installation done for package:nullPackageManager:BM finishing package install for 1PackageManager:mcs_unbindPackageManager:calling disconnectService()PackageManager:Sending to user 0:act=android.intent.action.PACKAGE_ADDED dat=package:com.skype.rover flg=0 x4000000 Bundleandroi

    23、d.intent.extra.UID=10100,android.intent.extra.user_handle=0ActivityManager:Broadast:Intent act=android.intent.action.PACKAGE_ADDED dat=package:com.skype.rover flg=0 x4000010(has extras)ordered=false userid=0 callerApp=nullCopyright MediaTek Inc.All rights reserved.oidserver目前我们只能做到将应用安装在如下组合中:1、关闭MT

    24、K_2SDCARD_SWAP,可以将应用安装在下面两个路径上 1)手机内存(internal storage)2)手机存储(Phone storage)或者 2、开启MTK_2SDCARD_SWAP,可以将应用安装在下面两个路径上 1)手机内存(internal storage)3)外置SD卡(sd card)关于如何开启MTK_2SDCARD_SWAP以及该宏对应的功能请参考MOL上的Ecource:SD卡配置方案介绍,或者到dcc上下载对应的ppt:SD卡配置方案介绍.pptx.文档中介绍了几种配置方法,每种方法会有各自的优缺点,可以根据自己的需求选择适合自己的方案。Google 默认 P

    25、ackageManager 管理安装包的机制如下(按照优先级由高到低描述,如果高优先级的条件被满足,则不继续参考较低优先级的选项):1.安装应用到SD卡,需要指定install flag:adb install s *.apk 该设置拥有最高优先级,最终安装结果以这个为准,不管下面2个的配置.2.若没有特别指定1中的install flag,将会检查 AndroidManifest.xml中android:installLocation的定义。manifest的設定細分為:android:installLocation=auto,表示先查看手机内存是否足够,如果够就安装在手机内存上,不够就安装在 T 卡上;android:installLocation=internalOnly,表示安装在手机内存上;android:installLocation=preferExternal,表示安装在 T 卡上;

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:android应用安装流程课件.ppt
    链接地址:https://www.163wenku.com/p-6100418.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库