首先来一个Google官方给出的著名的图:
Applications:不需要解释,这些使用JAVA语言,据说Andriod也提供了native的API,不知道可否用于建立app。
Application Framework:提供一个开放的开发平台。开发者可以完全访问,也是Andriod上层应用开发者所关注的。包括下面的内容:
• View:提供UI,包括lists,grids, text boxes, buttons,包括嵌入web browser • Content Providers :允许应用从其他应用中获得数据或者分享他的数据。(这是否就是IPC)
• Resource Manager:提供获取non-code resources,例如localized strings, graphics, and layout files。 • Notification Manager:允许应用将用户的警告星系显示在status bar 。
•Activity Manager:管理应用的生命周期并提供一个通用的浏览的backstack。
Libraries:Andriod给系统的各个组件提供C/C++库。上面的application framework,在此库上建立。
• System C library - 标准的C system library (libc), 这个对于做嵌入系统的交叉编译工具链都是非常熟悉了。
• Media Libraries - 基于PacketVideo's OpenCORE,支持playback和录音,支持多种音视频格式和静态图形格式,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG • Surface Manager - 提供2D和3D图形 • LibWebCore - web browser engine • SGL - the underlying 2D graphics engine
• 3D libraries - 基于OpenGL ES 1.0 APIs; 使用包括硬件3D加速,以及highly optimized 3D software rasterizer
• FreeType - bitmap and vector font rendering (字体渲染)
•SQLite - a powerful and lightweight relational database engine
Android Runtime:就是著名JAVA的runtime:Core Lib包括常用的类库以及Google自己为手持设备开发的Dalvik虚拟机。其执行文件的格式为.dev。
Linux Kernel:Linux version 2.6.x,包括安全,存储管理,进程管理,网络stack,驱动模块,电源管理。
(参考网址:http://www.iteye.com/blogs/subjects/learningandroid)
下面简短的谈一下使用的IDE有哪些需要注意的地方:(我使用的是Android Studio、SDK +Genymotion、Virtual Box)
1、一定要正确安装JDK并配置好环境变量。
2、由于是需要将他们进行组合的 所以一定要配置目录的时候一定要是正确的安装目录。
3、Android SDK Manager里的每个文件夹的含义要弄清:
1)sdk platforms其实也是提供各种工具的,只不过为了照顾不同的Android版本,这些工具在每个版本都可能有不同的实现,这里提供的工具有adb,aapt,aidl等。
2)tools和build-tools包含了太多好用的工具,每个单独拿出来都可以介绍一大篇,建议题主先去官方文档了解一下,如果想深入的话,可以看看源码。比如adb的源码其实就蛮有意思的,已经有人把adb移植到Ubuntu,这样adb就可以识别任何你想识别的设备。
(参考网址:https://www.zhihu.com/question/31935836/answer/53921551)
4、我在安装时遇到了一个问题,在这里列出来以供大家以后可以参考:
我查了我配置的地址,如下图,应该是对的,而且也没有中文字符:
查看virtual box上的错误信息如下:
最后通过网上查找发现原因了:是因为我的virtual box太新了,于是我下载了一个低版本的Virtual Box并安装后,终于好了!