当前位置: 嵌入式研究室 > 课程介绍 > 短期强化嵌入式技术课程 >
Android底层开发-ARM平台
|
课程描述:
|
||
本课程在Android应用开发课程的基础上,增加ARM体系结构,ARM平台内核驱动移植等内容, Android是Google开发的底层基于Linux智能手机操作系统,是真正的3G智能手机普及操作系统,广泛应用于3G手机、上网本等。目前处于爆发式增长阶段,HTC(宏达电 多普达)、摩托罗拉、索爱、三星等众多公司纷纷推出基于Android智能操作系统,甚至很多上网本也使用Android操作系统。目前Android是最热门的智能操作系统,凭借Linux的软件优势其应用的广泛程度已经让其他对手相形见绌。所以学习Android操作系统具有巨大的意义。中国移动的OPhone就是基于Android的深层次开发的产品,尚观课程的制定者为OPhone的核心开发成员之一。 |
||
|
Android底层方向的技术特色:
|
||
|
Android是以Linux作为底层的智能手机操作系统,在ARM平台下Linux有大量的代码资源,凭借Open Handset Alliance Vision(OHAV)联盟的支持,Google在Linux之上提供Dalvik 虚拟机运行Java接口的应用程序,尚观最早移植Android系统在ARM平台上。它直接改善了Linux应用程序的开发,让其上程序员开发更高效,使得Android的市场份额立刻扩大。Android凭借优秀的体系结构,让众多的开发者加入其中,它也是目前3G智能设备领域最有前途的操作系统。Android体系结构如下: ![]() |
||
|
课程目标:
|
||
让学员迅速掌握目前最热门的3G智能手机操作系统 Android 开发,同时可以胜任Android平台及相关中国移动OPhone平台的智能手机应用系统的开发。 |
||
|
课程范围:
|
||
◆Android平台架构; ◆Android应用设计新理念; ◆ Android API; ◆ Android kernel ; ◆ Android 系统模块; ◆ Android 手机部署; |
||
|
培养对象:
|
||
希望迅速了解和掌握Android应用开发的学员;希望从事移动终端开发的爱好者、工程师、程序员、已及相关行业的工程技术人员;有志于从事以下工作的软件开发技术人员和正在学习计算机、软件、通信专业的学生: ◆ 手机应用软件开发; ◆ 各类手持终端设备的行业应用软件开发; ◆ 移动互联应用开发(服务器端); ◆ 移动增值服务开发。 |
||
|
课程设计讲师:
|
||
郭老师——高级研发工程师,1999年开始从事Java开发工作,具备十余年的开发、管理和培训经验。在无线通信、Android、JavaME、JavaEE、Linux等领域都有深入研究,现为IT技术自由作家兼Android、JavaME、JavaEE培训讲师。曾出版过《Android应用开发详解》、《JavaEE Web工程师JDBC+Servlet+JSP整合开发》、《JavaEE高级工程师培训框架核心技术Struts、Hibernate、Spring》等畅销书籍。 |
||
|
课程大纲Android部分强化课程(64个学时 每天8学时):
|
||
◆ Android操作系统概述 1. Android系统架构。 2. Android应用设计理念。 3. Android 开源知识。 4. Android 参考网站与权威信息。 ◆ Android SDK及其开发环境搭建 1. Android SDK的版本发布。 2. ADT插件的安装和更新。 3. Android应用程序架构。 4. 建立第一个Android项目(HelloAndroid!)。 5. 通过Eclipse导入一个开源项目 6. 可视化的界面开发工具 7. 部署应用程序到Android模拟器或手机 ◆ Android 源代码开发环境搭建与源码结构分析 1. 开发系统主机环境搭建 。 2. 安装软件包Required Packages。 3. Ubuntu 6.06 (Dapper)。 4. Ubuntu 8.04。 5. Ubuntu 7.10。 6. Install javva。 7. 源码结构分析Android source (kernel / platform/application)。 8. Android build system。 9. Android bring up。 ◆ Android 应用程序设计模型 1. drawable。 2. layout 。 3. values(strings.xml、colors.xml、style.xml 、arrays.xml等)。 4. R.java分析及使用 。 5. AndroidManifest.xml。 6. Android.mk。 7. Activity 。 8. Intent。 9. Service 。 10. ContentProvider。 ◆ Android 应用程序界面(一) 1. TextView的使用。 2. drawable的使用 。 3. 引用Drawable颜色常数及背景色。 4. CharSequence数据类型与ResourceID应用。 5. DisplayMetrics的使用。 6. Style样式的定义。 7. Button事件处理。 8. setContentView的应用。 9. Intent对象的使用。 10. Bundle对象的实现。 11. startActivityForResult方法。 12. AlertDialog窗口。 13. Button与TextView的交互。 14. Typeface对象使用。 15. Gallery对象。 16. 多按钮应用。 17. Menu功能菜单程序设计。 18. ProgressDialog与线程应用。 19. 动态产生按钮并最大化。 20. 选择功能的对话框。 21. Android主题(Theme)实现。 22. 支持多种分辨率的屏幕。 ◆ Android应用程序界面(二) 1. EditText与setOnKeyListener事件。 2. ImageButton的焦点及事件处理。 3. Toast对象的使用。 4. CheckBox的isChecked属性。 5. 多选项CheckBox的应用。 6. RadioGroup组与onCheckedChanged事件。 7. ImageView的堆栈应用。 8. Spinner与setDropDownViewResource。 9. ArrayList与Widget的依赖性。 10. Gallery与衍生BaseAdapter容器。 11. JavaI/O的应用。 12. ImageButton选择特效。 13. AutoCompleteTextView与数组。 14. AnalogClock与DigitalClock的原理。 15. DatePicker与TimePicker应用。 16. ImageView点击事件与透明度处理。 17. ProgressBar与Handler的整合应用。 18. GridView与ArrayAdapter设计。 19. ListView的布局。 20. ListActivity与Menu整合技巧。 21. JavaI/O与ListActivity的结合。 22. 使用decodeFile方法。 23. 运用Matrix对象来缩放图文件。 24. Bitmap与Matrix旋转ImageView。 25. RadioButtonID。 26. 对话窗口上的ICON图标。 ◆ Android 应用交互与手机模块控制 1. PendingIntent与AlarmManager。 2. PendingIntent 与 SmsManager 。 3. Intent 与 Email。 4. 数据存储方式。 5. NotificationManager与Notification。 6. Adapter对象与Cursor。 7. TelephonyManager的应用。 8. RunningTaskInfo的应用。 9. Provider.Contact的使用。 10. Provider.Calendar的使用。 11. Service与Runnable整合并用。 12. BroadcastReceiver与Intent 。 13. receiver与intent-filter。 14. Android网络编程。 15. HTTP请求与连接。 16. WebView.loadUrl。 17. Webkit 与 WebCore。 18. HttpURLConnection与URLConnection和运行线程。 19. Runnable混搭SurfaceView。 20. Google ApI。 ◆ Android 系统服务 1. Activity Manager。 2. Windows Manager。 3. Surface Manager(surface flinger)。 4. Package Manager。 5. Telephony Manager。 6. Content Provider。 7. Resource Manager。 8. AssetManager。 9. View System。 10. Location Manager。 11. Notification Manager。 12. AlarmManager。 13. BatteryManager。 14. HardwareManage。 15. 如何添加一个新系统Service并开放API。 16. 关键服务。 17. Android系统启动流程。 ◆就业班课程(320学时,每天8学时): ARM平台 Android 移植与驱动核心开发 Android嵌入式智能操作系统是基于Linux内核和驱动的,对于HTC、华为等公司开发Android操作系统时,需要专门将Android移植到特定硬件平台下,同时将必要的驱动进行编写及开发。本课程旨在让学员成为Android的核心层开发者,让学员在这种嵌入式设备厂商中谋得核心开发人员的职位。 1. Android系统体系及移植相关工具 1.1 Android操作系统体系结构介绍。 Android Linux内核移植介绍。 文件系统, toolbox等移植。 存储驱动移植。 Bootloader相应方案与移植。 Android虚拟器Dalvik移植介绍。 1.2 ARM处理器介绍。 ARMv5TJS 。 ARM中断处理。 ARM体系结构与ARM处理器的体系结构。 IP核、芯片与开发板。 ARM处理器结构 处理器模式。 . 寄存器。 . 流水线结构。 C语言内嵌汇编格式 与编程实例。 1.3 ARM指令系统。 . 算术逻辑指令 。 . 指令对状态寄存器的影响。 . 比较指令。 . 分支指令。 . 移位。 . 指令位图。 . 识别机器指令。 1.4内存访问与内存控制。 . 数据总线与地址总线的使用与实例。 . STR/LDR 。 1.5 ARM过程调用标准。 . LDM/STM。 . 反汇编。 . APCS。 . C语言函数与汇编的互相调用。 【案例】 使用Android Linux patch进行Linux内核的构建 2. Android Linux内核移植与核心开发 2.1 ARM处理器的Android系统构建。 2.2 输入输出设备驱动移植 。 2.3 存储设备nand flash,MMC/SD卡驱动移植。 2.4 Framebuffer移植 。 2.5 Touchscreen移植 。 2.6 Open Binder IPC移植。 【案例】 2.7 在ARM处理器上移植Android试验 。 2.8 编写Nand flash驱动。 2.9 移植Framebuffer驱动。 2.10 硬件相关部分(键盘、触摸屏、LCD等)。 3. Android相关环境 库、以及Bionic系统移植 3.1 libc移植 。 3.2 libm移植 。 3.3 libdl移植。 3.4 libm移植。 3.5 busybox, toolbox移植。 【案例】 1. 移植glibc。 2. 移植busybox和toolbox。 4. Android Dalvik移植一 4.1 JNI Call Bridge相关原理 。 4.2 dx, dalvitvm原理和使用。 4.3 Dalvik指令格式。 4.4 Dalvik执行格式dex 。 4.5 Java字节码格式。 5. Android Dalvik移植二 5.1 Dalvik Library原理 。 5.2 dalvit libcore核心库移植。 5.3 dalvit/vm/native移植。 5.4 Dalvik Interpreter原理 。 5.5 Dalvik Mterp。 6. ARM AT&T汇编 6.1 AT&T汇编语法详解 。 6.2 gas工具的使用 。 6.3 label标签的作用。 6.4 数据与代码的分布。 7. 链接脚本ld-script 7.1 段地址的确定。 7.2 编写ld-script。 7.3 ELF格式与libc函数库的关系。 8. 时序电路基础 8.1 电平信号 。 8.2 电路图分析。 8.3 时序图分析。 8.4 datasheet查看 。 8.5 s3c2440的外围器件结构。 8.6 GPIO操作。 9. AMBA总线标准 9.1 AMBA总线标准 。 9.2 FCLK/HCLK/PCKL频率分配与设置。 9.3 Watchdog计时操作。 9.4 UART操作 。 9.5 ARM中断体系。 9.6 异常向量表。 9.7 ARM模式切换。 9.8 ARM中断控制器 。 9.9 软中断。 9.10 Linux系统调用的实现。 10. Nand Flash控制器 10.1 Flash原理。 10.2 Nand控制器原理及时序分板。 10.3k9f1208时序分析。 11. 内存控制器 11.1 s3c2440物理地址分布 。 11.2 SDRAM原理与时序。 11.3 内存控制器的物理连接。 11.4 地址对齐 。 11.5 SRAM访问。 12. 内存管理单元 12.1 MMU的原理 。 12.2 ARM协处理器指令。 12.3 section模式。 12.4 small page模式 。 12.5 I & D TLBs 。 12.6 I & D Cache。 12.7 哈佛结构的原理与实现。 13. DMA 直接内存访问 的机制与使用 13.1 DMA的状态机 。 13.2 DMA的控制。 14. 触摸屏接口与ADC接口 与实例 14.1 ADC原理 。 14.1 触摸屏接口与控制。 15. LCD控制器 15.1 图形显示原理。 15.2 LCD控制器。 15.3 LCD时序。 15.4 LCD驱动相关的框架与体系 。 16. I2S音频总线 16.1 音频硬件原理。 16.2 I2S时序。 16.3 s3c2440上I2S的操作。 16.4音频设备的裸驱动讨论。 17. CS8900网卡控制 17.1 逻辑链路层与MAC层。 17.2 CS8900原理与时序分析。 17.3后续网卡裸驱动讨论与体系结构。 18. TCP/IP协议栈移植,与网络体系结构 18.1 LwIP TCP/IP协议栈简介 。 18.2 LwIP配置与编译。 18.3 tftp配置与编译。 19. Bootloader原理与移植 19.1 u-boot的配置、编译 。 19.2 u-boot启动过程分析。 19.3 ARM-Linux的启动要求。 19.4 ARM-Linux kernel的ld-sript分析 。 19.5 u-boot到ARM-Linux的跳转代码分析 。 19.6 使用mkimage制作启动镜像文件。 20. ARM-Linux原理与移植 20.1 ARM-Linux的配置、编译 。 20.2 ARM-Linux启动代码分析。 20.3 ARM-Linux 地址映射的关系。 20.4 Busybox的配置、编译 。 |
||
|
课程重点:
|
||
◆ Android应用设计新理念,Android API.Android Device 系统。 |
||
|
课程实验环境:
|
||
Android SDK(1.5 cupcake) + windows Host Android cupcake Resouce + ubuntu Desktop Host |
||
|
适用对象:
|
||
熟练使用面向对象开发技术。 熟练使用面向对象开发语言如 C++或者Java。 熟练使用Linux开发环境及C语言数据结构。 |








