1.问题:引了第三方的AAR库要求获取手机状态的权限,但我APP不需要,我想删除掉,怎么办
答:很简单,只要在添加:http://schemas.android.com/tools 这个工具在manifest文件中,然后在相应的权限上增加:tools:node="remove"即可。算是只有你想不到,没有Google做不到吧。只需要加添如下代码,然后就可以把多余的蓝牙权限给干掉啦。代码如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.coolapps.mindmapping">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
//去掉该敏感权限
//主要是用在xml节点属性冲突时使用的,可以选择merge replace remove 之类的。
<uses-permission android:name="android.permission.READ_PHONE_STATE"
tools:node="remove"/>
</manifest>
2.解决APK安装包大小的问题 - 清除无用资源文件
buildTypes {
release {
minifyEnabled false
// 设置为true,清除掉没有引用资源文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/ic_*,@drawable/t_all" />
//这样达到保护我们的ic_前缀图片不要被清理。