如何从无源代码APK的.xml及.arsc文件中获取原始dimension数值
无源码APK提取dimension原始值的解决方案
- 方案1:使用APKTool反编译直接获取
这是最高效准确的方案,APKTool会自动解析resources.arsc文件,将所有压缩存储的资源映射为明文格式。反编译完成后,直接打开res/values/dimens.xml文件即可,如果你需要匹配多屏幕适配的维度值,还可以对应查看values-mdpi/values-hdpi等配置文件夹下的dimens文件,搜索horizontal_margin、vertical_margin等目标dimension名称,就能直接拿到带单位的原始数值,完全不需要试错。 - 方案2:直接用Android Studio内置的APK Analyzer查看
你已经可以用Android Studio打开APK,不需要额外安装工具:双击APK分析器里的resources.arsc文件,在搜索栏输入目标dimension的名称,右侧详情面板会直接展示该维度在不同配置下的实际值和对应单位。 - 补充说明
你看到的dimension(数字)是Android资源的内部存储ID,有手动解析规则:数值的高8位代表单位,低24位代表数值大小,但手动解析效率极低,优先推荐前两个工具方案。
你提供的布局代码解析如下:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="@dimen/horizontal_margin" android:paddingTop="@dimen/vertical_margin" android:paddingRight="@dimen/horizontal_margin" android:paddingBottom="@dimen/vertical_margin" android:layout_height="match_parent" android:layout_width="match_parent" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="dimension(13569)" android:text="TextView" /> </RelativeLayout>
内容的提问来源于stack exchange,提问作者Timothy
相关产品推荐
相关产品推荐

