android自学笔记一
android是什么我自闭不必多说,我们挑精华整理
一.android体系架构:
android从下而上分为四层:
(1)分别是linux操作系统及驱动(C语言实现)
(2)本地代码(C/C++)框架(C/C++)
(3)Java框架 (Java)
(4)Java应用程序(Java)
详见下图:
Android 的第 1 层次由 C 语言实现,第 2 层次由 C 和/C++实现,第 3、 4 层次主要由 Java 代码实现。
第 1 层次和第 2 层次之间,从 Linux 操作系统的角度来来看,是内核空间与用户空间的分界线,第 1 层次
运行于内核空间,第 2、 3、 4 层次运行于用户空间。
第 2 层次和第 3 层次之间,是本地代码层和 Java 代码层的接口。
第 3 层次和第 4 层次之间,是 Android 的系统 API 的接口,对于 Android 应用程序的开发,第 3 层次以下
的内容是不可见的,仅考虑系统 API 即可。
由于 Android 系统需要支持 Java 代码的运行,这部分内容是 Android 的运行环境( Runtime),由虚拟机和
Java 基本类组成。
对于 Android 应用程序的开发,主要关注第 3 层次和第 4 层次之间的接口。
除了软件本身的代码之外, Android 还提供了一系列工具来辅助系统开发,这些主要的工具包括:
aapt( Android Asset Packaging Tool):用于建立 zip 兼容的包( zip、 jar、 apk),也可用于将资源编译到二进
制的 assets。
adb( Android Debug Bridge, Android 调试桥):使用 adb 工具可以在模拟器或设备上安装应用程序的.apk
文件,并从命令行访问模拟器或设备。也可以用它把 Android 模拟器或设备上的应用程序代码和一个标准
的调试器连接在一起。
android 工具: android 工具是一个脚本,用于创建和管理 Android Virtual Devices ( AVDs)。
AIDL 工具( Android Interface Description Language, Android 接口描述语言工具), AIDL 工具可以生成进程
间接口的代码,诸如 Service 可能使用的接口。
AVDs( Android Virtual Devices, Android 虚拟设备)
用于配置模拟器,模拟出类似的设备效果
DDMS( Dalvik Debug Monitor Service, Dalvik 调试监视器服务):这个工具集成了 Dalvik,能够在模拟器
或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观
察堆( heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
dx: dx 工具用于将.class 字节码( bytecode)转换为 Android 字节码(保存在.dex 文件中)这个字节码文件
是给 Android 的 Java 虚拟机运行用的。
Draw 9-patch: Draw 9-patch 工具允许使用所见即所得( WYSIWYG)的编辑器轻松地创建 NinePatch 图形。
Emulator(模拟器):模拟器是一个运行于主机上的程序,可以使用模拟器来模拟一个实际的 Android 系统
的运行,使用模拟器非常适合调试和测试应用程序。
Hierarchy Viewer(层级观察器):层级观察器工具允许调试和优化用户界面。它用可视的方法把视图( view)
的布局层次展现出来,此外,还给当前界面提供了一个具有像素栅格( grid)的放大镜观察器。
mksdcard:帮助创建磁盘映像( disk image),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如
SD 卡)。
Monkey: Monkey 是在模拟器或设备上运行的一个小程序,它能够产生随机的用户事件流,例如:点击
( click)、触摸( touch)、挥手( gestures),还包括一系列系统级事件。可以使用 Monkey 给正在开发的程序做随机的但可重复的压力测试。
sqlite3: sqlite3 工具能够方便地访问 SQLite 数据文件,这是一个 sqlite 标准命令行工具。
Traceview:这个工具可以将 Android 应用程序产生的跟踪日志( trace log)转换为图形化的分析视图。
android自学笔记一的更多相关文章
- Android自学笔记:Git下载源代码
Info:做J2ME几年了,现在基本没有公司用了,是时候向Android领域进军了. 自学中,难免会有疏漏,有问题请及时提出,共同学习共同进步. 2014-10-13:初版 2014-10-14:添加 ...
- Android自学笔记:环境配置
Info: 自学Android之旅第二篇,初步学习会有疏漏,以后我会不断修改补全,直到完美. 2014-10-09:初版 2014-11-12: 重新配置了一台电脑,更新在学习robotium过程中, ...
- 疯狂安卓Android自学笔记
开发者必备自学工具: 谷歌搜索:www.yundou.info Android原版开发文档 (英文) Doc http://www.phoned.cn/docs/reference/android/v ...
- android自学笔记(1):android简介
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较 多人使用“安卓 ...
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...
- android 应用笔记
android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
学习内容: 1.使用Volley实现异步加载Json数据... Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...
随机推荐
- java视频格式转换代码
http://blog.163.com/zzf_fly/blog/static/20958915820127217443816/ package com.gkzx.online.action; imp ...
- EF Core » 影子属性
Caution:注意 This documentation is for EF Core. For EF6.x and earlier release see http://msdn.com/data ...
- eclipse 删除 tomcat8 重新添加的问题
今天手贱,把Eclipse里的tomcat删掉了,然后发现后面就不能重建了,很蛋疼啊...而且今天也发现eclipse里的tomcat启动时会把本地原来conf目录下的配置比如:tomcat-user ...
- 在ubuntu下真机调试android程序出现设备没有访问权限
今天把android的开发环境从windows平台切换到了ubuntu上. java jdk android-adt android-ndk都下好,环境变量都配好之后, 在调试程序的时候,出现设备没有 ...
- Subsets [LeetCode]
Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...
- HDU 1864
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- matalab(绘图)
plot(x) % 绘图语句F = getframe(gcf); %抓取图片imwrite(F.cdata,'myfile.jpg'); %保存图片 然后就可以在默认路径也就是matlab工作目录中找 ...
- jQuery滚动条回到顶部或指定位置
jQuery滚动条回到顶部或指定位置 在很多网站,为了增强用户体验,我们会看到回到顶部的按钮,不用手动拖拽滚动条就能回到顶部,非常方便.下面就介绍用jquery实现的滚动到顶部的代码 $(functi ...
- C#伪静态实现的方法
在asp.net开发网站的时候,我们经常会用到伪静态,好处是可以隐藏真实的路径,提高网站的安全性,在官网等展示网站希望对搜索引擎友好,提高搜索排名:或者在涉及到模板开发都会用到伪静态.下面讲解下平时用 ...
- java面向对象编程——第六章 数组
1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...