Android项目自动化--apk的打包、加固及其发布

项目完成后,大家都会选择一些应用开放商店上线自己的APP,像360应用商店,安卓市场,应用宝之类的,但是上线前不免需要对Apk进行应用瘦身,apk加固防止反编译,埋点统计点击的数据,渠道分发,线上热修等后期工作.

apk减少体积

  • 1、减少dex

    混淆代码,减少代码体积,删除没有使用的代码(包括自己的代码和三方库),把类名、方法名,使用简单的字母

    build.gradle中配置
    buildTypes {
    releaseminifyEnabled {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    
  • 2、减少res

    把未使用的图片,更改为一个像素的图片

     build.gradle中配置
     buildTypes {
     releaseshrinkResources {
        minifyEnabled true
        shrinkResources true// 必须保证minifyEnabled是true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    
  • 3、删除apk中未使用的资源

    Android Studio中,analyze-inspect code-Android lind performance,显示未使用的资源文件
    
    使用压缩文件打开apk,删除未使用的文件
    
    重新打包Windows_sign_tool
    
  • 4、减少国际化语言包

    build.gradle中配置
    defaultConfig {
    
        resConfigs("zh","ja")    //zh 为中文
    }
    

优化图片

1、png转换成jpg,会丢失透明像素


2、[优化图片](https://tinypng.com/)


    对于不超过5m的图片,上传压缩

3、webp

    优点,占用空间小,缺点压缩慢

    命令: cwebp.exe -q 80 test.png -o test.webp

apk加固

防止别人反编译代码,保证代码安全,防止二次打包
首先需要自己将项目的apk打好,这里以studio打包为演示
Android项目自动化--apk的打包、加固及其发布_第1张图片
1、上传apk
这里可以选择梆梆安全、360加固或者爱加密都可以
2、加固

3、下载加固后的apk

Android项目自动化--apk的打包、加固及其发布_第2张图片

4、使用平台提供的签名工具签名

apk 加固:
“签名得需要用人家官网提供的签名文件
上传应用的时候,需要利用各自平台上的签名

5、把签名后的apk上传到应用市场

友盟统计

友盟统计
集成
1、创建应用,申请appkey

Android项目自动化--apk的打包、加固及其发布_第3张图片

2、下载sdk,配置清单文件
添加依赖

Android项目自动化--apk的打包、加固及其发布_第4张图片
3、在Activity中添加代码
Android项目自动化--apk的打包、加固及其发布_第5张图片

4、错误统计,默认继承了,只要程序报错,服务器就有异常日志

这里的onResume()和onPause()都是为了检测错误统计的日志
Android项目自动化--apk的打包、加固及其发布_第6张图片
5、自定义事件统计

统计数值型变量的值的分布
统计一个数值类型的连续变量(该变量必须为整数),用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等,可以调用如下方法:

MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du)

id  为事件ID
map  为当前事件的属性和取值
du  为当前事件的数值为当前事件的数值,取值范围是-2,147,483,648 到 +2,147,483,647 之间的有符号整数,即int 32类型,如果数据超出了该范围,会造成数据丢包,影响数据统计的准确性。

## 示例:统计一次音乐播放,包括音乐类型,作者和播放时长,可以在音乐播放结束后这么调用:

int duration = 12000; //开发者需要自己计算音乐播放时长
  Map<String, String> map_value = new HashMap<String, String>();
  map_value.put("type" , "popular" );
  map_value.put("artist" , "JJLin" );   
MobclickAgent.onEventValue(this, "music" , map_value, duration);

6、统计点击次数及各属性触发次数
计算事件除能够统计数值型的参数外还具有计数事件的所有功能详细说明

以上就是针对上线之后的项目,围绕数据统计,应用瘦身,渠道分发,线上热修等后期工作的大概流程,其它加固如360加固和爱加密

你可能感兴趣的:(apk反编译,apk-安全,友盟统计,android自动化)