安卓学习经验总结:芯灵思开发板安卓底层开发
最近想学习一下安卓了,于是在网上买了一块安卓开发板,我买的是芯灵思的开发板,核心板是全志的 A31S ,感觉性能挺好,而且老板还给了很多的资料,而且还带学习的视频,下面是我在学习完第一期之后的一个经验,希望能跟大家分享一下,也希望各位大神能多多的帮助小弟,小弟在此谢过了。大家可以去芯灵思官方网站看一下 安卓开发我们要学习的包括四个部分: [size=10.5000pt]1.安卓开发环境的搭建(需要一块安卓开发板,和源代码,我用的是芯灵思开发板 SINA31S ) [size=10.5000pt]2.安卓的编译方式 [size=10.5000pt]3.安卓的启动分析 [size=10.5000pt]4.安卓的传感器模块 我们所学习的底层开发是 Framework 层和 Hal 层,下面我们说一下我们开发所需要的环境 [size=10.5000pt]1.软件开发环境:必须要有开发板源码、配置 java JDK 版本、需要 adb 调试工具 [size=10.5000pt]2.硬件开发环境:需要准备开发板及相关原理图,和相关芯片的 datasheet 、需要 USB 线、串口线调试工具 [size=10.5000pt]3.开发人员要对 Linux 有一定的了解,最好有 C 、 C++ 、基础,如果从事 Framework 层要对 java 有一定的了解 下面我来简单介绍一下我们所使用的开发板的核心配置
| CPU | GPU | DDR | EMMC | Video | Display |
| 全志 A31S 四核 Cortex-A7 L1 cache 256 L2 cache 1M | PowerVR SGX544MP2 Opengles 2.0 | 1G | 16G | Encoder: H264 720p Decoder: Mpeg4 、 H.263 、 H.264 、 decoder | LAD: RGB/LVDS,1280X800 HDMI 1.4 :1920x1080@60fps |
Hal 层的主要作用是:把一些外设想象成一套接口供 Framework(C++) 层调用 Framework(C++) 层主要是承上启下的作用,对上可以为 Framework(java) 层提供服务,对下能够挂接我们 Hal 层的外设,还可以对外设提供保护,保证同一时刻只有一个应用程序对外设进行访问 第三方库文件主要是为系统提供一些处理 虚拟机系统主要是连接上层应用、底层的服务、和对第三方库文件提供一个自动化管理 Framework(java) 层为我们提供了一些服务和进程之间的通讯方式,这些可以让我们快速的构建自己应用,也可以定制自己需要的控件或者服务 App 层基于 java 来实现的,运行在虚拟机之上
我们来分析一下 Camera 从上到下的调用顺序: 当我们想要拍一张照片时首先他会获取我们的 Camera 服务(从 java 层调到 Framework java 层) Framework java 层会通过虚拟机直接获取 Camera 服务,如果有人在占用 Camera 服务,那么会断开当前的链接,同时会和新的应用建立一个链接,这样应用就会获取到 Camera 访问权限和 Camera 所支持的属性,当我们点击拍照命令时,这个命令从上层一直到 Framework 层,再告诉 Hal 层, Hal 层会调用我们的驱动去控制硬件抓拍一张照片,照片的数据会经过 ISB 的一些处理,然后返回 Hal 层,再从 Hal 层返回 Framework 层,再通过 Dalvik 传递到上层,上层拿到图片后就可以进行一些处理了。
上面呢就是我在第一期视频上学到的一些东西,希望对想学安卓的朋友有一定的帮助。
http://blog.csdn.net/chengfeng135/article/details/49487907
http://blog.csdn.net/
http://tiyubisai.com/video_news/news_135441.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
