安卓学习经验总结:芯灵思开发板安卓底层开发

最近想学习一下安卓了,于是在网上买了一块安卓开发板,我买的是芯灵思的开发板,核心板是全志的 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
SINA31S  的主要外围接口:
一个串口、一个 LED 灯, SD 卡、一个 CAM 接口、一个 WIFI 接口、一组 IO 接口,一个有线网口、一个 OTG 接口、两个 USB 接口、一个 LCD 接口、一个 HDMI 接口、音频接口
另外我们的开发板还增加了一个电源管理芯片,使芯片的功耗降低了很多。
安卓的整个架构与分层:整个安卓系统应该是有软件和硬件组成的
我们所说的硬件通常指主 CPU 、和他的一些外围接口,如: Camera LCD\ Sensor
软件从底层到上层可以分为 U-boot 、内核和我们安卓的 OS
U-boot 主要就是引导内核的启动,我们的主 CPU 内部有一段程序是来引导我们的 U-boot 启动的
主芯片的启动模式主要有:USB 启动, SD 卡启动和 Flash 启动,我们选择的启动方式主要是根据几个固定 GPIO 的电平来决定的。
内核是整个系统的核心,它主要负责进程的管理、内存的管理、网络的管理,可以直接控制我们的硬件
我们的安卓系统主要分为下面几个层:
[size=10.5000pt]1. Hal
[size=10.5000pt]2. Framework(C++)
[size=10.5000pt]3. 第三方的一些库文件
[size=10.5000pt]4. Dalvik (虚拟机系统)
[size=10.5000pt]5. Framework(java)
[size=10.5000pt]6. App (应用层)

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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值