安卓目录结构 & 程序签名 & 反编译

一、目录结构

新建了一个空项目,目录结构就这样:

  • java:我们写Java代码的地方,业务功能都在这里实现
  • res:存放我们各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件
巨麻烦,一个前端一个后端,很烦。


1、res资源目录


PS:说到这个res目录,另外还有提下这个assets目录,虽然这里没有,但是我们可以自己创建,两者的区别在于是否前者下所有的资源文件都会在R.java文件下生成对应的资源id,而后者并不会;前者我们可以直接通过资源id访问到对应的资源;而后者则需要我们通过AssetManager以二进制流的形式来读取!对了,这个R文件可以理解为字典,res下每个资源都都会在这里生成一个唯一的id

drawable图片资源:

  • drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
  • mipmap-hdpi:高分辨率,一般我们把图片丢这里
  • mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
  • mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
  • mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现


layout布局资源


  • layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!

menu菜单资源


  • menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多,菜单项相关的资源xml可在这里编写,不知道谷歌会不会出新的东西来替代菜单了~

values目录

  • demens.xml:定义尺寸资源
  • string.xml:定义字符串资源
  • styles.xml:定义样式资源
  • colors.xml:定义颜色资源
  • arrays.xml:定义数组资源
  • attrs.xml:自定义控件时用的较多,自定义控件的属性!
  • theme主题文件,和styles很相似,但是会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为<application...>添加theme的属性! PS:你可能看到过这样的values目录:values-w820dp,values-v11等,前者w代表平板设备,820dp代表屏幕宽度;而v11这样代表在API(11),即android 3.0后才会用到的!

AndroidManifest.xml


    主配置文件,用于配置各个组件的访问权限。

Android程序签名打包

签名的作用:

1.应用程序升级:无缝升级到新的版本,包签名必须是同一证书。

2.应用程序模块化

3.代码数据共享: 不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。

其余操作借鉴https://www.runoob.com/w3cnote/android-tutorial-sign-package.html

反编译:

工具

apktools: https://ibotpeaches.github.io/Apktool/

dex2jar https://github.com/pxb1988/dex2jar

JD-GUI:http://java-decompiler.github.io/

感兴趣的自己研究吧。




发表评论 / Comment

用心评论~