从Level8(版本2.2)开始,可以将App安装到外部存储器(如SD卡)。通过在manifest属性中声明android:installLocation实现该功能,如果不声明,应用只会安装到内部存储器,并且不能转移到外部存储中。
在AndroidManifest.xml中加上属性android:installLocation,设置为preferExternal或auto
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
... >
【安装到外部存储中】
- 不会影响App性能;
- .apk文件保存在外部存储中,而用户私有数据、数据库等保存在内部存储中;
- 由于存储App的容器由手机唯一加密,所以SD卡上的所有应用只能在本手机上解密使用。
【注意】
当手机开启USB大容量存储(USB mass storage)与电脑连接共享文件,或通过系统设置卸载SD卡后,所有外部存储中的应用都无法运行使用。
当App存在以下特性时,不要安装到外部存储中
Services
Your running Service will be killed and will not be restarted when external storage is remounted. You can, however, register for the ACTION_EXTERNAL_APPLICATIONS_AVAILABLE broadcast Intent, which will notify your application when applications installed on external storage have become available to the system again. At which time, you can restart your Service.
Alarm Services
Your alarms registered with AlarmManager will be cancelled. You must manually re-register any alarms when external storage is remounted.
Input Method Engines
Your IME will be replaced by the default IME. When external storage is remounted, the user can open system settings to enable your IME again.
Live Wallpapers
Your running Live Wallpaper will be replaced by the default Live Wallpaper. When external storage is remounted, the user can select your Live Wallpaper again.
App Widgets
Your App Widget will be removed from the home screen. When external storage is remounted, your App Widget will not be available for the user to select until the system resets the home application (usually not until a system reboot).
Account Managers
Your accounts created with AccountManager will disappear until external storage is remounted.
Sync Adapters
Your AbstractThreadedSyncAdapter and all its sync functionality will not work until external storage is remounted.
Device Administrators
Your DeviceAdminReceiver and all its admin capabilities will be disabled, which can have unforeseeable consequences for the device functionality, which may persist after external storage is remounted.
Broadcast Receivers listening for "boot completed"
The system delivers the ACTION_BOOT_COMPLETED broadcast before the external storage is mounted to the device. If your application is installed on the external storage, it can never receive this broadcast.
根据你的App类型选择安装位置。理论上,所有App可以安全地安装到外部存储中
来源:http://developer.android.com/guide/topics/data/install-location.html#Compatiblity
分享到:
相关推荐
【uni-app腾讯地图显示定位】 在移动应用开发中,定位功能是常见的需求,尤其是在本地服务、导航或基于位置的应用中。uni-app是一个跨平台的前端框架,它允许开发者使用一套代码来实现多端运行,包括iOS、Android、...
Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成用于系统维护。难点在于位置营销。 设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者进行赢利。 Google 自身通过基于统一平台为...
2. ACCESS_COARSE_LOCATION:允许应用访问范围(如 WIFI)的定位 3. ACCESS_FINE_LOCATION:允许应用访问精确(如 GPS)的定位 4. ACCESS_LOCATION_EXTRA_COMMANDS:允许应用访问额外的提供定位的指令 5. ACCESS_...
1. **android.permission.ACCESS_LOCATION_EXTRA_COMMANDS** - 描述:允许应用程序访问额外的位置提供命令。 - 作用:允许应用程序访问额外的位置信息提供程序命令。恶意应用程序可能干扰GPS或其他位置源的正常...
49. **INSTALL_PACKAGES**:系统应用才能拥有,用于安装新的应用包。 50. **INTERNET**:允许应用连接到互联网,进行数据传输。 51. **KILL_BACKGROUND_PROCESSES**:应用可以结束其他应用的后台进程,释放系统...
- `android.permission.REQUEST_INSTALL_PACKAGES`:允许请求安装包,恶意应用可能借此诱骗安装恶意软件。 - **正常权限**: - `android.permission.ACCESS_NETWORK_STATE`:查看所有网络状态,用于网络功能的...
- `android.permission.ACCESS_COARSE_LOCATION`: 获取粗略的位置信息,通常基于网络定位。 - `android.permission.VIBRATE`: 允许应用控制设备的振动器。 - `android.permission.SET_ALARM`: 允许应用设置闹钟。...
React本机sf位置v 定位与选择位置视图 安装 NPM我React本机SF位置V npm install ele-react-... android / app / build.gradle 编译项目(“:ele-react-native-location”) MainApplication.java @Override prot
##### 2.5 安装Android Studio & Android SDK Android Studio是Google官方推荐的Android应用开发工具,同时包含了Android SDK。可以从官方网站下载最新版本的Android Studio安装包,并按照提示完成安装过程。此外,...
验证码增强现实基于位置的夺旗使用React-Native,React-Native-Maps,Geolib,Redux,Firebase为iOS和Android构建的实时移动游戏怎么玩即将登陆App Store和Google Play。 注意:在此之前,用户可以克隆此存储库,...
本机设置涉及集成iOS和Android系统的原生特性,如定位服务、推送通知、蓝牙等。 在React Native中,由于JavaScript层无法直接访问设备的原生功能,通常需要通过桥接(Bridge)机制来调用原生模块。这些原生模块是用...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 最后,通过`ionic cordova build`命令编译项目,并使用`ionic cordova run android/ios`在真实设备或模拟器上运行应用,以测试`...
安装完成后,克隆或下载RNLocationApp项目,然后使用`npm install`命令安装依赖项。 2. **导入和使用地理位置API**: React Native提供了一个名为`react-native-geolocation`的库,用于访问设备的地理位置信息。在...