Android第一天

来源:互联网 发布:springboot 初始化sql 编辑:程序博客网 时间:2024/06/06 03:28

Jvm 和dvm的区别:

1.       jvm是面向pc机的,dvm是面向手机的

2.       运行java程序 java---.class ---jar

手机上   .java     ---.classs-----.dex------.odex

3.       jvm运行在内存上,而dvm运行在寄存器上  寄存器在cpu上


Android的系统架构
  1. 设备驱动程序层(Linux Kernel):该层主要包括:驱动、内存管理、进程管理、网络协议等组件。
  2. 执行层c/c++函数库层(Libraries)及Android Runtime:
    • Java不能直接访问硬件,要访问硬件,必须使用NDK。NDK是由c/c++语言编写的库(.so文件),该层是对应用程序框架层提供支持的层。
    • SSL:Secure Sockets Layer安全套接字层
    • libc:C运行时库
    • WebKit:负责浏览器支持(Chrome和Safari都使用该库来支持浏览器)
    • FreeType:负责字体支持
  3. 应用程序框架层(Application FrameWork):该层一般都是开发人员直接调用的API。该层主要由Java语言编写。
  4. 应用程序层(Applications):由运行在Dalvik虚拟机上的app组成。(Dalvik是Google公司为Android专门设计的Java虚拟机,运行Java程序的速度比JVM更快,以此来克服手持设备在内存、处理器速度和功率等方面上的限制)。该层由Java语言编写。
    1. Dalvik是冰岛一个小镇的名字。Dalvik VM获取生成的java类文件,将它们组合为一个或者多个、Dalvik可执行文件(.dex)。Dalvik VM的目标是找到所有可能的方式来优化JVM性能、内存及电池寿命。
    2. 采用Dalvik VM的一个结果是,Android中最终的可执行程序代码不是java字节码,而是.dex文件。这意味着无法直接执行java字节码,必须得到java的类文件,然后将它们转换为.dex文件。
 项目目录介绍:
  1. src(开发人员源码放置目录)
  2. gen(自动生成R.java,所有的资源文件都会在R.java文件中以final static 内部类的形式被注册。所以可以通过R..id,R.layout等形式来访问资源。)
  3. assets(资产目录。在这个目录中放置的资源文件,不会在R.java文件中被注册,也就是不会生成资源id。一般程序中的音频或视频文件可以放置在这个目录下。这个目录支持任意深度的子目录,而res资源目录则不可以。)
  4. bin(编译后的class等文件在此目录。系自动生成)
  5. libs(项目自动生成)
  6. res(资源文件。是Android编程中最重要的目录。所有的资源都定义在这个目录下。)
  7. drawable(图片放置的目录)【备注:android中不允许图片资源的文件名中出现大写字母,并且不能以数字开头
  8. layout(布局文件放置的目录)
  9. menu(菜单文件放置的目录)
  10. values(字符串、尺寸等文件放置的目录)
  11. AndroidManifest.xml (Android清单文件——是Android开发中非常重要的文件。
  • 该文件中定义了本App的版本号;
  • 适用的手机操作系统最大及最小的兼容版本号;
  • 整个项目中每写一个组件(Activity、Service、Broadcast),都需要在该清单文件中注册;
  • 运行本程序的权限等等。
【备注:】res和assests目录的不同:
  1. 是否在R.java文件中被注册;
  2. res所放的文件类型是规定好的;而assests目录下放置的文件类型不限制;
  3. 访问方法不同。res中文件使用R.内部静态类.id来访问;而assest中的文件通过IO流来访问。

0 0
原创粉丝点击