ProGuard优化Android日志

Android应用开发过程中,一般会加入各种日志打印,便于代码调试,android.util.Log的方法经常被使用。如果应用总是在后台不断的输出Log.i或Log.d的内容,除了增加系统开销外,对应用的整体效率受影响。ProGuard通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。结果生成一个比较小的.apk文件,该文件比较难进行逆向工程,因此安全性较高。

1 基础配置

在Eclipse中新建一个Android工程,一个proguard-project.txt文件会在工程的根目录下自动创建。默认情况下,Eclipse中的新建工程不会加入ProGuard功能,需要修改project.properties文件。即将“#proguard.config=…”前端的“#”去掉就可以了。“proguard.config=”的配置信息由两部分组成:默认部分和工程特有部分,工程特有部分将附加到默认部分(如下图提示),共同组成工程的混淆配置,因此如果需要根据需求配置混淆文件,只需要修改proguard-project.txt。

2 优化日志

默认情况下,上一节的配置没有优化功能,因此我们应该将project.properties文件中的“${sdk.dir}/tools/proguard/proguard-android.txt”替换为“${sdk.dir}/tools/proguard/proguard-android-optimize.txt”,这样优化功能才没有被关闭。

优化日志主要是通过如下命令实现:

-assumenosideeffects class_specification

这个命令指出了哪些方法是无副作用的。在优化阶段,此命令将会去除这些方法的调用。

3  实例

按照以上介绍的步骤和方法,新建工程,并配置ProGuard,在proguard-project.txt文件中新增如下指令。

-assumenosideeffects class android.util.Log {
             public  static int v(...);
             public  static int i(...);
             public  static int w(...);
             public  static int d(...);
   }

需要注意的是,在Eclipse里的Run或BuildProject/Build All来生成Apk,是不会混淆代码的!“Export UnsignedApplication Package...”,然后按照向导操作即可,最终生成了不签名的Apk。查看效果可以用7z等压缩程序打开,将其中的classes.dex解压,用dex2jar转成jar格式后,再用Java反编码工具jd-gui打开,就会看到代码的混淆效果。

ProGuard优化Android日志

时间: 2024-10-31 14:15:03

ProGuard优化Android日志的相关文章

user模式下编译android 代码被proguard优化导致类和变量丢失

在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了.所以,在JNI应用中该慎用progurad啊. 解决办法: 1.在Android.mk中加入一行: LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags 2.创建proguard.flag文件,里面写入不需要proguard优化的类和方法.例如: -keep class oms.miracle.mo

使用proguard混淆android代码

当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的.为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等.我们需要对代码进行混淆,android的sdk中为我们提供了ProGrard这个工具,可以对代码进行混淆(一般是用无意义的名字来重命名),以及去除没有使用到的代码,对程序进行优化和压缩,这样可以增加你想的难度.最近我做的项目,是我去配置的混淆配置,因此研究了一下,这里分享一下. 如何启用ProGuard ant项目和eclipse

Android日志:代码混淆,使用说明

上一篇介绍了Google官方的一些解释,这一篇主要介绍如何实战(Eclipse开发)使用Googel提供的这个工具.如对代码混淆的概念不是很了解的建议先看上一篇--Android日志:代码混淆,官方文档介绍-----来自Google最新文档 主要先简单的介绍三个主要文件,在sdk下的proguard里面:  我的SDK路径为H:\Android\android-sdk-windows\tools\proguard proguard-android.txt//系统配置好一些默认选项,考虑的比较详细

使用Zipalign工具优化Android APK应用记录

生成的Android应用APK文件最好进行优化,因为APK包的本质是一个zip压缩文档,经过优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗.我们可以使用Zipalign工具进行APK优化. 据Android官方网站的说明,Zipalign是一款重要的优化APK应用程序的工具. 多数软件开发商在正式推出其Android应用程序,都使用Zipalign工具优化APK包.但是,仍然有一些应用程序需要我们自己动手进行Zipalign优化,例如一些个人开发的软件.一些破解版的软件.

Android日志猫小结

android.util.Log常用的方法有以下5个: Log.v() ------> VERBOSE: 黑色,任何消息 Log.d() ------> DEBUG  :  蓝色,调试信息 Log.i()  ------> INFO     :  绿色,提示信息 Log.w() ------> WARN   :  橙色,警告信息 Log.e()  ------> ERROR  :  红色,错误信息 注:信息的重要等级依次增大,当在logcat里面选择的输出等级越小,输出的信息

Android日志猫的使用

Android日志猫的使用 Android给我们提供了一个Log类,这个类有一些方法,比如 我们可以在我们的代码中添加这些方法进行测试 1 package com.example.test; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.view.Menu; 7 import android.view.MenuItem; 8 9 10

[Android]Android日志抓取软件测试

1. log文件分类简介 1. 实时打印: 1.1 logcat main(应用程序) -- adb logcat -b main -v time > app.log 1.2 logcat radio(射频相关-SIMSTK,modem相关的ATcommand) -- adb logcat -b radio -v time > radio.log 1.3 logcat events(系统事件的日志,比如触屏事件等) -- adb logcat -b events -v time 1.4 tcp

《Android笔记3.11》 Android 日志系统

课程背景:Android 日志是用来记录程序运行过程的,但是在实际开发中,由于日志信息太多导致不方便查看有效日志而影响了正常的开发调试工作,所以学会对日志进行分类查看非常重要. 核心内容:1.System.out2.System.err3.Android Log 类4.日志分类过滤 使用日志 API System.out.println("普通日志Info"); System.err.println("错误日志Warning"); Log.e(TAG, "

eclipse优化,日志自动生成

1.每次创建一个类,都要新写    private static Logger log = LoggerFactory.getLogger(SyncNewFileThread.class); 麻烦,于是改了下创建类的模板 来自为知笔记(Wiz)eclipse优化,日志自动生成,布布扣,bubuko.com