码迷,mamicode.com
首页 > 移动开发 > 详细

Android修改应用的默认安装位置

时间:2014-11-20 13:47:45      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:android   frameworks   installlocation   安装位置   

<span style="font-size:14px;"><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">Google默认的PackageManager,会读取应用AndroidManifest.xml的对应定义</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">installLocation</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">:</span></span>


规则如下:

1. 如果没有定义安装位置,表示安装在手机内存上;

2. android:installLocation = "auto",先查看手机内存是否足够,如果够就安装在手机内存上,不够就安装在T 卡上;

3. android:installLocation = "internalOnly",表示安装在手机内存上;

4. android:installLocation = "preferExternal" ,表示安装在 T 卡上;


如何在设置中增加“选取应用安装位置”的功能,让用户选择默认的安装位置?

修改如下文件:

<span style="font-size:14px;">frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java</span>

做以下修改:

<span style="font-size:14px;">loadSetting(stmt, Global.SET_INSTALL_LOCATION, 0);</span>

改为:

<span style="font-size:14px;">loadSetting(stmt, Secure.SET_INSTALL_LOCATION, 1);</span>



<span style="font-size:14px;">loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 0);</span>

改为:
<span style="font-size:14px;">loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 1);</span>

这样修改之后,在设置>应用中会出现“选取应用安装位置”的功能,不过无论在这里选择什么,对于应用中AndroidManifest.xml文件中声明

<span style="font-size:14px;">android:installLocation = "internalOnly"</span>

的,该apk 都会安装到手机上,这样做的好处是避免程序运行错误,因为定义android:installLocation = "internalOnly" 的 apk 一般要安装到手机内存上才能正常运行。

Android修改应用的默认安装位置

标签:android   frameworks   installlocation   安装位置   

原文地址:http://blog.csdn.net/zhoumushui/article/details/41310305

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!