andriod学习入门总结(一)

文档:http://androiddoc.qiniudn.com/develop/index.html

部分名词解释:

  1. Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用!
  2. AVD: (android virtual machine):安卓虚拟设备,就是安卓的模拟器
  3. ADT: (android development tools)安卓开发工具
  4. SDK:(software development kit)软件开发工具包,就是安卓系统,平台架构等的工具集合,如adb.exe
  5. DDMS:(dalvik debug monitor service)安卓调试工具
  6. adb:安卓调试桥,在sdk的platform-tools目录下,功能很多,命令行必备
  7. DX工具:将.class转换成.dex文件
  8. AAPT:(android asset packing tool),安卓资源打包工具
  9. R.java文件:由aapt工具根据App中的资源文件自动生成,可以理解为资源字典
  10. AndroidManifest.xml:app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序的配置文件

各个目录作用:

  1. src目录:包含App所需的全部程序代码文件,大多数时候都是在这里编写我们的Java代码的
  2. gen目录:只关注R.java文件,它是由ADT自动产生的,里面定义了一个R类,可以看作一个id(资源编号)的字典,包含了用户界面,图形,字符串等资源的id,而我们平时使用资源也是通过R文件来调用的,同时编译器也会看这个资源列表,没有用到的资源不会被编译进去,可以为App节省空间
  3. assets目录:存放资源,而且不会再R.java文件下生成资源id,需要使用AssetsManager类进行访问
  4. libs目录:存放一些jar包,比如v4,v7的兼容包,又或者是第三方的一些包
  5. java:写Java代码,实现大部分代码
  6. res资源目录:存放各种资源文件的地方(图片,字符串,动画,音频,XML等)。
  • drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
  • 高分辨率,一般图片放这里
  • mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
  • mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
  • mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现
  • layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!
  • values:demens.xml定义尺寸资源,string.xml定义字符串资源,styles.xml定义样式资源,colors.xml定义颜色资源,arrays.xml定义数组资源,attrs.xml自定义控件的属性。theme主题文件,和styles很相似,但是会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为添加theme的属性! PS:你可能看到过这样的values目录:values-w820dp,values-v11等,前者w代表平板设备,820dp代表屏幕宽度;而v11这样代表在API(11),即android 3.0后才会用到的!
  • raw: 用于存放各种原生资源(音频,视频,一些XML文件等)
  • animator:存放属性动画的XML文件,anim:存放补间动画的XML文件(属性动画通过改变对象的属性来展示的动画效果,补间动画只是设置当前View在区域内移动,产生的动画效果,其实原View的还在原地,没有发生改变。 
    但属性动画改变了对象的属性。也就是改变了对象的颜色,位置,宽高等。补间动画指的是做FLASH动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。)

.9图片格式

命名.9.png  在图片拉伸的时候特定的区域不会发生图片失真,不失真的区域可以由我们自己绘制

工具:Android SDK自带:draw9patch.bat,NinePatchEditor,NinePng九图神器(手机端)

数字签名:

  • 1.应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!
  • 2.应用程序模块化: Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。
  • 3.代码或者数据共享: Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。 不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名

反编译:

  1. apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件
  2. dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)
  3. jd-gui:查看2中转换后的jar文件,即查看Java文件

你可能感兴趣的:(andriod)