欢迎来到天天文库
浏览记录
ID:9038586
大小:23.50 KB
页数:2页
时间:2018-04-15
《应用程序安装在sd卡还是内存选择及设置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、主要内容是介绍如何使得自己开发的android程序安装到外置储存设备(如sd卡),安装到外置储存设备(如sd卡)的程序有哪些特别的地方、兼容性、哪些软件最好安装在内存中,哪些最好安装在外设上。 1、安装到外置储存设备中的程序 若某程序被安装到外置储存设备中,则 (1)当外置储存设备(如sd卡)挂载在手机等设备上时,对应用程序的运行没有什么影响。 (2)apk文件保存在外设上,但是程序的所有私有数据,如数据库、优化后的.dex文件、提取出来的本地代码仍然保存在内存中。 (3)应用程序会被用随机生成的key加密后保存在外
2、设上,只有原来安装该程序的设备(如手机)才能进行解密。所以说安装在外设上的程序只能被唯一的设备使用。 (4)用户可以通过系统设置将该程序移动到内存中。 (5)当外设从设备上卸载时,所有安装在外设上的应用程序被kill 2、向后兼容性 开头就介绍了从androidapilevel8(即andrid2.2)后,允许将应用程序安装到外置储存设备(如sd卡)中。对api8之前编译的程序只能安装在内存中,就算安装在api8及以上的平台上也无法在外设和内存中移动如果希望拥有android:installLocation属性的程序能够在
3、api8以下的平台上运行,需要: (1)在AndroidManifest.xml文件中manifest元素设置android:installLocation属性 (2)设置android:minSdkVersion,其值可以小于8。并且确保应用程序使用的api和该级别兼容 (3)在androidapilevel8编译程序,因为低级别的无法识别android:installLocation属性这样当在api8以下的平台上android:installLocation属性被忽略,程序安装在内存中AndroidManifest
4、.xml 3、哪些软件最好安装在内存中 当外设从设备上卸载时,所有安装在外设上的应用程序被kill,并且直到外设可用时,系统才能识别该应用程序。除了kill程序外,对于某些程序可能会产生更严重的后果,为了让你的程序始终运行在可预料情况下,当程序包含以下特性时,最好安装在内存中: (1)Services(服务)在外设卸载时,运行的服务会被kill,并且当外设可用时不会重新启动,除非注册ACTION_EXTERNAL_APPLICATIONS_AVAILABLE广播intent,这样可以在外设可用时重启服务 (2)Alar
5、mServices(定时服务)在AlarmManager注册的Alarm会被取消,必须在设备可用时手动重启 (3)InputMethodEngines(输入法)在外设卸载时,安装在外设上的输入法不可用,系统会采用默认的IME。当外设可用时,系统必须重新启动该输入法好吧,怪不得找不到一个可以安装到sd卡的输入法了。。 (4)LiveWallpapers(壁纸)在外设卸载时,安装在外设上的LiveWallpapers不可用,系统会采用默认的LiveWallpapers。 (5)LiveFolders(home的文件夹)在外设
6、卸载时,安装在外设上的LiveFolders不可用,系统会采用默认的LiveFolders。好吧,怪不得htc默认的壁纸和工具不可移动了 (6)AppWidgets(应用的Widgets)在外设卸载时,安装在外设上的AppWidgets不可用。通常直到系统重启方可用(或系统设置home应用程序) (7)AccountManagersAccountManager创建的Account不可用直到外设可用 (8)SyncAdaptersAbstractThreadedSyncAdapter和所有其同步函数不可用直到外设可用
7、 (9)DeviceAdministratorsDeviceAdminReceiver和它所有的管理功能不可用 (10)BroadcastReceiverslisteningfor"bootcompleted"系统在外设挂载前,发出ACTION_BOOT_COMPLETED(系统启动完毕)广播,所以安装在外设上的程序收不到该广播 (11)CopyProtection如果使用了AndroidMarket'sCopyProtection属性,则不可以安装在外设上。如果使用AndroidMarket'sApplicationLice
8、nsing,则可以任意安装在外设还是内存内4、哪些软件最好安装在外设中 毕竟内存有限,所以如果不包
此文档下载收益归作者所有