前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

Android反编译xml文件 - zz_mm的专栏 - 博客频道 - CSDN.NET zz_mm的专栏 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! 消灭0回答,赢下载分 “我的2013”年度征文活动火爆进行中! 专访何海涛:“不正经”程序员的进阶之路 Android反编译xml文件 分类: Android开发 2012-04-19 14:46 4994人阅读 评论(2) 收藏 举报 androidxmllayoutencodingtools工具 一、前言: 大家好,今天给大家分享一下Android中的拿来主义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后的目录通常是这样的如下图: 当然res里的图片是可以拿来就用的(笔者的好多应用的图片都是从别人的apk里扣出来的),而诸如layout里的布局及权限文件(AndroidManifest.xml)已经是一堆乱码了,完全看不懂,想看看别人是怎么布局的都不容易。还有源代码都被编译成了classes.dex,完全看不出什么线索。基于以上的困惑,笔者给大家分享一下Android中的拿来主义。 二、所需工具(点击各自连接进入下载页面): 1.AXMLPrinter2.jar 2.baksmali.jar 3.smali.jar 三、准备工作 为了方便起见,作者把AXMLPrinter2.jar,还有baksmali.jar,还有smali.jar(下下来为了方便重命名),放在Android SDK tools文件夹中如下图所示: 为了便于大家更容易程序比对,作者写了一个简单的应用(叫APKInstaller)目录结构如下图所示: 四、开始拿来主义 1.用AXMLPrinter2.jar查看apk中的布局xml文件: 将ApkInstaller应用生成的ApkInstaller.apk(为了方便起见放到tools目录里)用WinRAR等工具打开,将res/layout/main.xml解压出来(也还是放在tools目录里哦) 打开main.xml文件,内容如下(一堆天文): 这时候AXMLPrinter2.jar派上用场了,打开cmd终端,一直进入到tools目录下,输入如下命令: java -jar AXMLPrinter2.jar main.xml > main.txt. (如下图所示) 打开main.txt代码如下(是不是有个123了呵呵~): view plaincopy to clipboardprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="1" android:layout_width="-1" android:layout_height="-1" > <WebView android:id="@7F050000" android:layout_width="-1" android:layout_height="-2" > </WebView> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="1" android:layout_width="-1" android:layout_height="-1" > <WebView android:id="@7F050000" android:layout_width="-1" android:layout_height="-2" > </WebView> </LinearLayout>为了比对打开源程序中的main.xml代码如下(大家比对一下吧): view plaincopy to clipboardprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <WebView android:id="@+id/apk_web" android:layout_height="wrap_content" android:layout_width="fill_parent" /> </LinearLayout> 注意:本文是转载! 更多 上一篇:JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例 下一篇:SQLite中怎么将两个字段字符串合并连接为一个 查看评论 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料 zz_mm 访问:152308次 积分:2730分 排名:第3134名 原创:127篇 转载:63篇 译文:0篇 评论:85条 文章搜索 文章分类 ASP.NET(随笔)(30) C#(随笔)(12) Java(17) Javascript(RSS)(19) Jquery学习(13) tomcat总结(3) windowsmobile开发(16) 测试(1) 数据库(6) 生活哲理(1) Android开发(78) Iphone开发(1) SQL(6) sqlite(6) 设计模式(1) 游戏机玩法技巧(1) 开发工具(eclipse+VS2012)(2) 系统(1) 文章存档 2013年09月(1)2013年07月(1)2013年06月(2)2013年05月(11)2013年04月(5)2013年03月(3)2013年02月(4)2013年01月(9)2012年12月(4)2012年11月(6)2012年10月(5)2012年09月(11)2012年08月(3)2012年07月(2)2012年06月(15)2012年05月(9)2012年04月(11)2012年03月(7)2012年02月(5)2012年01月(1)2011年12月(7)2011年11月(3)2011年10月(3)2011年09月(5)2011年08月(8)2011年07月(9)2011年06月(3)2011年04月(2)2011年03月(6)2010年05月(1)2010年04月(10)2010年03月(1)2010年01月(5)2009年11月(2)2009年08月(5)2009年07月(2)2009年04月(2) 阅读排行 Struts2 XML配置详解(23955) JqueryMobile动态生成listView并刷新的方法!(9327) Android反编译xml文件(4994) Android改变ListView选中行字体颜色(2853) 百度地图循环添加标注,并循环为标注添加信息窗口问题解决(2838) Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例(2555) Jquery 日程安排 fullcalender 的使用(2476) Android左右滑动实现Activity切换类UC+QQ+天天动听音乐播放效果(2459) Android+Listview+分页+动态加载网络数据(2349) Sqlite查询时间段内的数据问题解决!(2320) 评论排行 Struts2 XML配置详解(18) Android+Listview+分页+动态加载网络数据(9) 百度地图循环添加标注,并循环为标注添加信息窗口问题解决(9) Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例(5) DataSet(DataTable)轻松的通过Sum、Aver、Count等统计出相关结果(4) struts.xml配置(4) Android中在有TabHost情况下,OnKeyDown不能后退的解决办法(3) Jquery 日程安排 fullcalender 的使用(3) Android中ListView放入PopupWindow产生问题解决(3) Sqlite查询时间段内的数据问题解决!(2) 推荐文章 最新评论 Android+Listview+分页+动态加载网络数据 lanquankk: 求发源码897217456@qq.com 求发 Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例 EBugger: 但这样无法传值了啊,有什么用? Android反编译xml文件 bluecountry: 吗的转贴不表明出处,下载链接都没有,找骂 百度地图循环添加标注,并循环为标注添加信息窗口问题解决 jacksjdkjs: while($row = @mysql_fetch_array($result)) { if... TabHost的子Activity中onActivityResult 不响应解决方案 u011172834: 从其他Activity里面跳转的时候 是跳到子Activity还是父Activity Android+Listview+分页+动态加载网络数据 u011498266: 大神,跪求代码,刚好做这块,可以发份么?757177823@qq.com.谢谢 Android反编译xml文件 u013071132: jhvkcdrfsag dfyh 百度地图循环添加标注,并循环为标注添加信息窗口问题解决 yishide_weixiao: 大神啊,好厉害 Struts2 XML配置详解 Yuanyuanasdf: 真的很不错!看了之后茅塞顿开!谢谢! android百度地图打包混淆 用不了No such file or directory (2) com.baidu.mapapi.BMapManager.init(Unknown Source) berry666: 你好 ,是反编译的问题吗?proguad.cfg 是做什么用的