程序打包的热点问题,Android从入门到精通

kuan {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: “kuan”]

}

xiaomi {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: “xiaomi”]

}

qh360 {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: “qh360”]

}

baidu {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: “baidu”]

}

wandoujia {

manifestPlaceholders = [UMENG_CHANNEL_VALUE: “wandoujia”]

}

}

}

或者批量修改

android {

productFlavors {

kuan {}

xiaomi {}

qh360 {}

baidu {}

wandoujia {}

}

productFlavors.all {

flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

(3)执行打包操作

在AndroidStudio菜单栏点击Build菜单–>Generate signed APK–>选择key,并输入密码。最后选择打包渠道完成产生多渠道的APK包。

什么是代码混淆

对发出去的程序进行重新组织和处理,使得处理后的代码与处理前的代码完成相同的功能,这样的代码很难被反编译。简化代码的过程中将变量名、函数、类等名称变为简单的字母代号,一些不影响正常运行的信息也将永久丢失,这样编译后的jar文件体积大约能减少25%,达到精简程序的作用。

如何做到代码混淆

java源代码编译成中间字节码存储于class文件中,我们用java混淆器对java字节码进行混淆。

步骤为:

(1)在Android项目的根目录下创建一个proguard.cfg文件用来配置混淆选项

(2)在Android.mk中每个package类型的LOCAL_MODULE中的LOCAL_PACKAGE_NAME下面添加两行代码:在这里插入代码片

#指定当前的应用打开混淆

LOCAL_PROGUARD_ENABLED:=full

#指定混淆配置文件

LOCAL_PROGUARD_FLAG_FILES:=proguard.cfg

(3)编译时设置环境变量使用 . ./setenv.sh -bv user

(4)如何在项目中使用了第三方的SDK,则在混淆代码时需要按照第三方的SDK的要求来做。

实际工作中也可以使用第三方的混淆工具来混淆例如爱加密或者360加固助手。

简述不同SDK版本的两种代码混淆方式

低版本的SDK下,项目中同时包含proguard.cfg和project.properties文件,只需要在后者文件末尾添加proguard.config=proguard.cfg再将项目Exprot即可

高版本的SDK下同时包含上述两个文件,这时需要在proguard_project.txt文件中添加如下信息配置再将项目Exprot。

例如在project.properties中内容如下:

Project target

target=android-18

如果想保留某个包下的文件不被混淆,可以在proguard-project.txt文件中加入保留对应包名的语句:

Add any project specific keep options here:

-dontwarn com.cnki.android.cnkireader.**

-keep class com.cnki.android.cnkireader.** { *; }

如何加固APK

一般使用360和爱加密加固APK

  1. 360加固APK

(1)在360加固界面上传apk进行加固,加固前要对apk进行签名

(2)选择加固服务,有基础服务和增强服务。

(3)下载应用签名,下载应用后,需要对该apk进行再次签名保证前后的签名一致,否则加固后的应用无法再手机上运行,用多渠道打包的应用需要加固成功后在进行多渠道打包。


  1. 爱加密加固APK

(1)直接上传APK包,不用提供源代码

(2)爱加密提供多个加密方式(云加密,PC加密,本地加密,so文件本地加密,全自动加密服务,安全审核加密)

(2)加固完成后也要签名保证加固前后一致。

APK瘦身

APK越大消耗的流量就会越多,所以要瘦身

APK的辅助分析工具是NimbleDroid,是分析Android APP性能指标的系统。

APK瘦身的方式有:

(1)开启混淆,删除无用的Java文件,开启minifyEnable(开启混淆,删除无用的java文件),可减小APK中APK文件的大小。

android {

buildTypes {

release {

minifyEnabled true

proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’

}

}

}

(2)去除无用资源,同时去除工程中临时展示的图片。开启shrinkResources,同时去除工程中临时展示的图片可减小APK文件的大小,具体代码如下:

android {

buildTypes {

true

proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’

}

}

}

(2)去除无用资源,同时去除工程中临时展示的图片。开启shrinkResources,同时去除工程中临时展示的图片可减小APK文件的大小,具体代码如下:

android {

buildTypes {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值