反编译:反编译apk得到的几个文件和文件夹1。
assets 文件夹此文件夹可以存放资源文件。
至于是神马资源文件,怎么读取,这些我们就不用深究了,因为不常改。
2。
res 文件夹主要用来存放资源。
此文件夹下可以创建子文件,常见的有:anim 动画drawable 图片color 颜色menu 菜单layout 布局values 常量值xml 任意xml文件我们修改apk时,一般就在这里修改。
比如汉化,改名称,去广告,改字体颜色,大小神马的。
3。
smali里面主要是dex文件反编译得到的smali文件。
不会java的改不起。
顶多搜几个关键词汉化一下。
值得注意的是,汉化时不能直接输入汉字,而应输入对应的十六进制代码。
4。
AndroidManifest.xml此文件是apk中最重要的文件之一。
它是apk的全局配置文件,提供了android系统所需要的关于该应用的必要信息。
res目录浅说:1 anim文件夹后缀名为.xml。
动画文件都放在这里。
2 drawable文件夹用于存放图片资源,图片或者xml。
(1) 图片图片格式:png,9.png,jpg,gif。
注意:9.png是一种特殊的png格式,与一般的png格式有区别!很多人在改完图片后将两种格式混淆,导致回编译失败。
后面有制作9.png格式图片的方法。
(2) xmlxml文件通常为自定义的形状shape或图片选择器类selector似的东西,就是不同状态下不同的图片,用于设置background什么的。
(3) drawable文件夹为了对屏幕的适配,①对分辨率笼统的分:名字可以为:drawable-ldpidrawable-mdpidrawable-hdpidrawable-xhdpdrawable-nodpidrawable-tvdpi分辨率依次由高到低②具体到某一分辨率:drawable-分辨率,比如:drawable-1280x720③如果有横竖屏的区别,则命名为:drawable-land/port-mdpi,3 color文件夹用于存放color列表,和drawable的xml一样,表示不同状态下的不同颜色4 menu文件夹菜单资源文件夹。
5 layout文件夹布局文件夹。
此文件夹的名字也是可以起到屏幕适配的功能的。
①横竖屏:layout-land/port②分辨率:layout-1280x7206 values文件夹存放常量值的文件夹。
里面常见的xml文件为:arrays.xml :资源数组.colors.xml : 颜色值dimens.xml :像素值.strings.xml :字符串值.styles.xml :样式值.此文件夹,也有屏幕适配作用。
比如:dimens在不同分辨率下的值。
同样的是加-1280x720这样的后缀。
对于strings,values文件夹有各种语言的版本对应。
默认为英文。
中文的文件夹名字应该是:values-zh-rCN 简体中文values-zh-rTW 繁体中文7 raw文件夹存放不需要系统编译成二进制的文件,例如字体文件等,同assets文件夹类似。
8 xml文件夹存放任意的xml文件。
具体看名字。
改apk时,我们主要改两种,即图片和xml。
先讲图片:改图片最简单了,注意好格式,分辨率即可。
但有一点需注意,就是9.png和png格式图片的区别。
许多人没注意这点,导致回编译总是失败。
下面讲9.png格式图片的制作。
1 介绍 9patchNinePatch.图片以*.9.png结尾,和普通图片的区别是四周多了一个边框左边那条黑色线代表图片垂直拉伸的区域,上边的那条黑色线代表水平拉伸区域,右边的黑色线代表内容绘制的垂直区域,下边的黑色线代表内容绘制的水平区域,右边和下边的线是可选的,左边和上边的线不能省略。
采用NinePatch.图片做背景,可使背景随着内容的拉伸(缩小)而拉伸(缩小)总之,通俗的将,9patch格式的图片就是有些部位能伸缩,有些部位不能的特殊png格式图片。
2 将png转化为9.png步骤如下第一步,下载9妹工具,一楼工具包里有,双击打开draw9patch.bat,将图片拖到软件界面编辑。
第二步,勾选软件下面的三个选项,全选就对了。
第三步,把鼠标放到图片中央,此时你会看到图片四周有1像素的透明带第四步,在左边和上边的透明带上各画一条黑线(鼠标拖动即可)注意:当图片过大时上边的透明带会被黄色的提示框遮住,此时只能多点击黄色区域自己摸索透明带的位置。
第五步,保存,这个不用多说吧。
至此,将图片替换回原来的文件夹即可。
需要注意的是,刚编辑的9patch.图片不能直接拖到原apk中,而应回编译后再替换进去。
再说修改xml。
改字体,软件全局背景,汉化,去广告神马的都通过这种方式。
我们常改的是layout,drawable,values目录下的xml文件,如果要改桌面插件,要去xml文件夹中修改。
必要时也可尝试修改AndroidManifest.xml。
下面是常见代码(分类非标准)1 引用(@)1)引用自定义的资源形式 @[package:]type/name如 android:text="@string/hello"这里使用"@"前缀引入对一个资源的引用,后面的string/hello就是我们自定义的资源。
2) 引用系统资源形式 @android:type/name如 android:textColor="@android:color/opaque_red" 指定package:android3) 引用主题属性形式?android:type/name即引用当前主题中的属性的值。
2 文本(text)textColor 文本颜色textColorHighlight 被选中文字的底色,默认为蓝色textColorHint 提示信息文字的颜色,默认为灰色。
与hint一起使用textColorLink 文字链接的颜色textScaleX 设置文字之间间隔,默认为1.0ftextSize 文字大小textStyle 字形typeface 文本字体height 文本区域的高度maxHeight 文本区域的最大高度width 文本区域的宽度lines 文本的行数3 视图(view)background 背景色/背景图片(@null透明)clickable 是否响应点击事件focusable 是否获得焦点minHeight 视图最小高度minWidth 视图最小宽度padding 上下左右的边距scrollbar 滚动条(none 隐藏,horizontal 水平,vertical 垂直)tag 文本标签visibility 是否显示View(visible 默认值,显示;invisible 不显示,但是仍然占用空间;gone 不显示,不占用空间)4 布局(layout)LinearLayout 线性布局FrameLayout 单帧布局RelativeLayout 相对布局AbsoluteLayout 绝对布局TableLayout 表格布局layout_width 宽度layout_height 高度fill_patent 布满屏幕wrap_content 适合大小foreground 前景background 背景gravity 位置(center_vertical 居中;top 顶部,默认;bottom 底部)orientation 定向(horizontal 水平,vertical 垂直)5 主题(theme)Theme.Dialog 对话框模式Theme.NoTitleBar 无标题栏Theme.NoTitleBar.Fullscreen 无标题栏,全屏Theme.Light 白色背景Theme.Light.NoTitleBar 白色背景,无标题栏Theme.Light.NoTitleBar.Fullscreen 白色背景,无标题栏,全屏Theme.Black 黑色背景Theme.Black.NoTitleBar 黑色背景并,无标题栏Theme.Black.NoTitleBar.Fullscreen 黑色背景,无标题栏,全屏Theme.Wallpaper 桌面背景Theme.Wallpaper.NoTitleBar 桌面背景,无标题栏Theme.Wallpaper.NoTitleBar.Fullscreen 桌面背景,无标题栏,全屏Theme.Translucent 半透明效果Theme.Translucent.NoTitleBar 半透明,无标题栏Theme.Translucent.NoTitleBar.Fullscreen 半透明效果,无标题栏,全屏Theme.Panel 面板风格显示Theme.Light.Panel 平板风格显示6 颜色(color)1) @color/××引用自定义的颜色,一般在res/values/colors.xml中2) @android:color/××引用系统颜色3) #×××××××× #后一共8个字符,由0~9,a~f组成。
前两位是透明度,00表示全透明,ff表示不透明。
后6位是RRGGBB,R红G绿B蓝,000000为白,ffffff为黑7 单位px 像素点in 英寸mm 毫米pt 磅,1/72 英寸dp 一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip 等同于dpsp 同dp相似,但还会根据用户的字体大小偏好来缩放。
注意:sp一般是文本的单位,dip最常用。