`
donnki
  • 浏览: 45277 次
  • 性别: Icon_minigender_1
  • 来自: 火星
文章分类
社区版块
存档分类
最新评论

【漫漫安卓路】之起~~~

阅读更多
http://developer.android.com被GFW墙了。。。。不知道发什么抽。。好端端的一开发人员网站都墙!诅咒那帮孙子!!好在还可以用http://androidappdocs.appspot.com/index.html访问。

按官方文档装好Android SDK及eclipse ADT,然后挂机花了一整天才下载好SDK platform Android 2.2, API 8及2.3 API 9,网速很慢,2.1 API 7仍以低于5KB/秒的速度缓慢下载中。

第一次运行eclipse Android SDK and AVD Manager时报了个错,说配置不正确,在preference里说一个tools/adb.exe文件不存在。找了下发现这个文件是放在platform-tools目录下的。于是直接把platform-tools下的所有文件拷贝到 tools下,再次运行就可以新增并运行AVD了。

看了下android的hello world,按着步骤运行跑通,就算正式开始了android之旅。

----------
闲话说完,切入正题,以下是随手笔记:

模拟器emulator可以在eclipse打开后就一直开着,因为每次启动emulator时会需要1-2分钟。如果一直开着,之后运行android程序时,会自动在开着的emulator中运行。

android从1.5至2.3之间的版本,通常都是向下兼容,也就是高版本可以运行低版本程序,但低版本运行不了高版本的。 高版本提供更多特性,并且性能和显示分辩率高于低版本。 文档上说有可以“Write Once, Test everywhere”的方式,留待以后再去仔细查阅。

android总体结构如下图:


其中
底层:android是linux内核,应用程序来说,大部分情况下不需要与内核产生直接调用。但还是有些工具可以与linux内核交互,比如通过adb shell执行linux命令来检查文件系统、活动进程、权限等等.

lib库层:c/c++实现的lib库,按分类名故名思义。值得一提的是android内核自带sqlite数据库,可以通过程序对它进行操作访问。此外,html内核和chrome一样是用的webkit。(之前在某地方看到过NDK的概念,这里有一行描述:Startting in Android 1.5, you can write and deploy your own native libraries using the Native Development Toolkit(NDK))

Runtime层:运行于名为Dalvik的java虚拟机之中,所有android应用程序都会运行在这个虚拟机中。它与传统VM的区别主要有两方面:1)Dalvik VM会在运行时将.class和.jar文件转换成更兼容、更有效率且统一的被内存/电池设置管理的.dex文件运行。2)Dalvik VM core libraries与Java SE和java ME libraries不同,具体区别可参考相关文档。

应用框架层(Application Framework):需要注意的几个模块
1)Activity Manager:控制应用程序的生命周期(android一个唯一并且强大的特性是所有的应用程序都有一个level playing field。所有的包括系统应用程序和你的应用程序一样会通过一个公共的同样的API来运行。也就是说你甚至可以将你的程序改变这个field来替换默认自带的系统程序。)
2)Content providers: 压缩存放所有需要被共享的资源比如联系人
3)Resource manager: 非代码类的其它资源管理
4)location manager: 当前所在位置信息
5)Notification Manager: 管理提醒(比如短信、约会提醒等等)

Applications and Widgets层:最上层模块,是日常手机使用者直接使用的layer层。这里的application是指占满整个屏幕并可以与user交互的应用程序,而widget通常只在Home界面上操作一个小的区域。
to be continued...


  • 大小: 109.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics