- 浏览: 636483 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- 生活 (2)
- c# (37)
- 技术 (3)
- 400电话 (0)
- 400常见问题 (0)
- 400资费 (0)
- html (7)
- css (0)
- 数据库 (7)
- javascript (16)
- php (33)
- asp.net mvc2 (10)
- mysql (9)
- C# 3.0 LinQ (10)
- vs2005或vs2008 (4)
- flash and as3 (7)
- fms (1)
- dedeCMS (11)
- java (33)
- j2me (1)
- swing (1)
- c++ (1)
- jquery easyui (3)
- jquery (5)
- android (29)
- MongoDB (9)
- VtigerCRM (1)
- test (0)
- linux (30)
- nutch (2)
- SqlServer数据库 (2)
- 数据检索 (2)
- java抓取 (11)
- 乐天 (1)
- 淘宝 (1)
- Silverlight4.0 (6)
- sphinx实时索引 (5)
- ecshop (9)
- codeigniter(CI) (3)
- axure6 (1)
- 京东店铺装修教程 (2)
- xpath (1)
- joomla (2)
- bpm (1)
- Bootstrap (2)
- knockout (4)
- ecstore (4)
- css3 (1)
- 微信 (2)
- dede (0)
- soa_edi (1)
- odoo (0)
- web (1)
最新评论
-
骑着蜗牛超F1:
在ie6下报了个stack overflow at line ...
兼容ie6和ie7 的16进制码流在html中显示为图片代码(base64) -
冰之海洋:
好像少了一句代码吧? FloatingFunc.show(th ...
android 一直在最前面的浮动窗口效果 -
yanzhoupuzhang:
连接有问题!
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000) -
whatable:
唉,楼主你都没有搞清楚重量级和轻量级。。。。既然引用了SWT, ...
java swing 内置浏览器打开网页显示flash图表-swt Browser应用 -
yy_owen:
我晕啊,你链接的什么内容额,我要的iis,你链接个视频什么意思 ...
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000)
概述
在2.3版本的sdk中可以看到在ANDROID_SDK _PATH/tools/下面多了一个proguard文件夹,google把proguard技术放在了android sdk里面,现在已经可以通过正常的编译方式实现代码混淆了。
在2.3版本以后,无论开发用的是哪一个版本的SDK,新建一个工程里面都会有default.properties和proguard.cfg两个文件。(http://www.my400800.cn )
默认的default.properties代码如下:
# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system use, # "build.properties", and override values to adapt the script to your # project structure. # Project target. target=android-9
默认的proguard.cfg中也已经有了混淆代码的脚本:
-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }
从脚本中可以看到:
-
混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、 ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService。
-
保留了所有的Native变量名及类名,所有类中部分已设定了固定参数格式的构造函数,枚举等等。
详细信息参考<proguard_path>/examples中的例子及注释。
使用代码混淆
依据官方文档所说:
To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the <project_root>/default.properties file. The path can be an absolute path or a path relative to the project's root.
修改default.properties文件,加上一句:
proguard.config=proguard.cfg
加完后如下面的样子:
proguard.config=proguard.cfg # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system use, # "build.properties", and override values to adapt the script to your # project structure. # Project target. target=android-9 proguard.config=proguard.cfg
然后正常的编译签名即可生成一个经过代码混淆的apk。
如果编译出现警告可以在【proguard.cfg】文件中添加【-ignorewarnings】忽略警告项目进行混淆处理。
Eclipse+ADT进行Android应用程序的代码混淆和签名 图解
启动代码混淆功能
在较新版本的Android tools和ADT,项目工程里面是带有proguard.cfg的代码混淆配置文件,但默认是没有启动这个配置的,需要手动地在default.properties里面添加指定这个配置文件:# Project target.
target=android-3
proguard.config=proguard.cfg
然后按F5刷新当前项目工程,这时候Eclipse检测了文件的变动而重新编译!
生成签名发布apk
1.Eclipse工程中右键工程,弹出选项中选择 android工具-生成签名应用包:
2.选择需要打包的android项目工程(注:这里会自动选择当前的Project的):
3.如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见 第6和7步创建私钥文件:
4.输入私钥别名和密码:
5.选择APK存储的位置,并完成设置 开始生成:
6.没有私钥文件的情况,创建私钥文件(注:这里私钥文件的Location位置最好自己选择一个新位置,便于牢记,而且最好把这个私钥文件备份到其他地方去以免丢失,因为应用程序的更新需要同一私钥文件):
7.输入私钥文件所需信息,并创建(注:这里的密码是用于Key的别名的,和上面的KeyStore文件的不同,这点可以看步骤3和4。另外下面的名字,开发者资料等是不需要全部填写的,dialog会有提示的):
这时候生成的apk,我发现是比debug版本的要小!如果你发现没有变小的话,请确认项目工程是重新编译的!但代码混淆的效果一般般,基本上还是可以看到原来的语句!
如果运行上面的代码出现错误请下载 proguard4.6.rar解压后把目录下面的 lib 目录中的文件复制到 【androidsdk的Developer目录下的lib目录下面就可以了】
- proguard4.6.zip (2.4 MB)
- 下载次数: 902
发表评论
-
andorid eclipse断点调试失灵
2013-05-09 15:06 1387在调试android程序的时候发现设置的断点怎么也进不去 ... -
android利用ZXing进行条码扫描二维码扫描源码简化
2012-01-04 09:59 2015导入项目 @Override public v ... -
Android使用ZXing类库进行条码/二维码识别
2011-12-26 11:24 1885Android使用ZXing类库进行条码/二维码识别(转) ... -
如何在开发时可以让Android应用程序支持安装到SD卡
2011-12-16 08:51 1014Android系统在2.1版本之前,应用程序是只能安装到机身内 ... -
用TextView显示带图片的效果及为文本添加链接
2011-12-06 17:13 1865为了实现在TextView中显示图片,有时对图片的宽度与高度有 ... -
android listview 滚动时异步加载图片的问题
2011-12-05 15:05 2426LoadImage.java package com ... -
Android 程序的安装、卸载和更新
2011-11-22 11:20 1253安装程序:软件从无到有。 卸载程序:软件从有到无。 ... -
atest201111
2011-11-21 17:04 0eeeee SQLite Developer ... -
android-XXX9.png文件拉伸不失真大家注意了
2011-11-17 14:24 1817什么是9.png: 可能做过任务栏美化 ... -
Android中String资源文件的String.format方法(java)
2011-10-25 16:57 1302很多时候我们感性Google ... -
android 一直在最前面的浮动窗口效果
2011-10-21 15:51 15990今天发现一些软件可以 ... -
Android 对于ListView拖动时变黑问题解决方法
2011-10-21 13:08 1602最近用ListView显示一些String数据 ... -
Android SeekBarPreference浅聊
2011-10-19 15:37 1593由于网上有很多人问到SeekBarPreferenc ... -
在Android中创建启动界面
2011-10-14 09:06 8321、制作一张启动图片splash.png,放置在res ... -
Android 菜单(OptionMenu)大全 建立你自己的菜单
2011-10-13 09:11 744菜单是用户界面中最常见的元素之一,使用非常频繁,在Andro ... -
Android中使用Gson解析JSON数据
2011-10-12 13:33 1618在Android中可以使用Gson解析JSON数据 ... -
android解析json小例子
2011-10-12 12:53 1175今天学习了一下解析json的知识,把我学习的的一个小例子拿出来 ... -
解决android http请求带中文参数会乱码(url编码)
2011-09-29 17:23 3289今天在用android 的 URL url = new U ... -
android 选择本地图片并预览
2011-09-29 14:40 1288adv_sdcard_image_upload.xml ... -
关于 apk文件反编译的方法(dex2jar和JD-GUI)
2011-09-19 11:51 1658觉着这2个工具配合学习android太靠谱了,所以放上来给大家 ...
相关推荐
### Android APK代码混淆详解 在Android开发过程中,为了保护源代码不被轻易反编译以及减少APK包的体积,通常会采用代码混淆技术。本文将详细介绍如何进行Android项目的代码混淆,并结合给定的配置文件内容,深入...
在Android开发过程中,为了保护应用的安全性和防止反编译,开发者常常会进行代码混淆这一重要步骤。本文将深入探讨Android代码混淆的前因后果、原理以及如何实施。 首先,我们来理解什么是代码混淆。代码混淆是将源...
因此,了解并掌握Android的反编译和代码混淆技术对于保护应用的知识产权和用户数据至关重要。 **一、Android反编译** 1. ** Dex2Jar 和 JD-GUI**: Dex2Jar是一个将.dex文件转换为.jar文件的工具,而JD-GUI则是一个...
综上所述,"Android程序中(APK程序)执行Adb shell命令"涉及到利用Java的Runtime或ProcessBuilder类来调用系统shell,执行特定的命令。这个过程需要理解ADB的作用,以及如何在Android应用程序中安全地使用shell命令...
"Android APK 加密 解密工具"就是这样一个专门用于加密和解密APK文件的实用程序,它可以帮助开发者增加额外的安全层,确保只有经过授权的用户能够安装和运行应用。 首先,我们需要理解APK加密的基本原理。通常,APK...
Android 应用程序以APK(Android Package)的形式发布,它实际上是一个包含应用程序代码、资源、manifest文件等的ZIP压缩包。APK文件内部结构包括以下几个关键部分: 1. classes.dex:包含了Java字节码,通过Dalvik...
Baffle的使用不仅限于基本的资源混淆,它还可以与其他安全实践结合,如代码混淆、资源加密等,进一步增强应用的安全性。通过开源的方式,开发者可以深入理解其内部机制,根据实际需求进行定制和改进。 总之,Baffle...
在这个“android ndk+代码混淆demo”中,开发者提供了一个实际的项目,展示了如何结合Android NDK和代码混淆技术来创建一个应用。通过这个Demo,学习者可以了解如何在Android项目中集成NDK,以及如何配置和使用...
通过对上述内容的学习,我们可以了解到Android代码混淆是一项重要的技术手段,不仅能够保护代码安全,还能有效减小程序体积。开发者应该根据实际需求合理配置混淆规则,并注意混淆可能带来的负面影响。希望本文能...
安卓Android APK反编译是开发者或逆向工程师为了查看、分析或修改APK内部代码和资源的一种技术。...同时,作为开发者,也应该了解如何保护自己的应用不被轻易反编译,例如使用ProGuard进行代码混淆,增加破解的难度。
ProGuard 是一款广泛应用于 Android 开发中的代码混淆工具,它能够通过删除未使用的类、字段、方法等,从而缩小 APK 的体积,并提高应用运行速度。此外,ProGuard 还能为类、字段、方法等命名,使得反编译后的代码...
在Android应用开发中,APK签名、加密和混淆是三个重要的安全措施,它们确保了应用程序的完整性和安全性。本文将详细解析这些概念及其在实际应用中的作用。 **签名** APK签名是Android系统的一种安全机制,它用于...
- **混淆与加密**:许多开发者会使用代码混淆工具(如ProGuard)对APK进行保护,这使得反编译后的代码难以理解。此外,一些敏感数据或逻辑可能经过加密处理,增加了反编译的难度。 - **安全风险**:反编译可能会...
Android Studio是一款广泛使用的Android应用程序开发集成环境,而代码混淆是其中的一个重要环节,尤其是在发布应用时,为了提高代码的安全性和减少体积,通常会使用到Proguard工具。AndroidProguard插件则是为...
"Android代码混淆及签名" ...代码混淆和签名打包 APK 是 Android 应用程序安全的重要组成部分。通过配置 proguard.cfg 文件和签名打包 APK,可以保护 Android 应用程序的源代码和intellectual property。
在IT行业中,尤其是在移动应用开发领域,Android APK文件是应用程序的可执行文件,它包含了所有必要的资源、代码和运行应用所需的库。本教程将详细讲解如何利用Visual C++ 6.0(简称VC6.0)调用Android相关的命令行...
在Android应用开发中,APK文件是应用程序的打包格式,包含了所有运行所需代码、资源和配置文件。"Android APK反编译"是一个针对APK文件进行逆向工程的过程,旨在揭示其内部工作原理,理解代码逻辑,或者进行二次开发...
在Android应用开发领域,Apk文件是应用程序的打包格式,其中包含了所有的代码、资源和元数据。有时,开发者或安全研究人员需要对Apk进行逆向工程,以理解其内部工作原理、查找潜在的安全漏洞或者进行二次开发。在这...
Android APK 是Android应用程序的主要包装格式,它包含了所有必要的文件,如代码、资源、图片和库,使得应用能在Android设备上运行。这份“Android APK中文文档”是官方文档的中文翻译版,为开发者提供了详细的指导...
- **混淆**: 开发者常使用ProGuard或R8进行代码混淆,使得反编译后的代码难以理解。 - **安全限制**: Android系统对应用的权限有严格控制,某些操作如系统调用可能需要特定权限,反汇编后无法直接执行。 - **法律...