1 Windows模拟开发环境
1.1 安装JDK;
1.2 安装Eclipse;
1.3 安装Android SDK;
1.4 安装ADT。
学习重点:
★ Eclipse IDE的使用
参考资料:《???》
★ AVD的使用
2 Linux开发环境
2.1 Ubuntu;
2.2 开发组件;
2.3 Samba服务器;
2.4 ESVN。
学习重点:
★ 开发环境搭建过程
参考资料:《Android平台开发环境设置详解v3-2.doc》
★ MTK Build Envirenment;
参考资料:《???》
3
1 Linux文件系统
参考资料:《Android内核剖析》,P2~P4
Linux文件系统包括:
1.1 根文件系统(Rootfs,Root File System)
Rootfs首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于:
ü 它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行;
ü 并不是所有的目录或文件都对应磁盘上的存储空间,如sys、proc、dev这三个目录对应的不是存储空间,而是设备文件;
ü “存储类文件系统”和rootfs不能并列存在,而只能挂载到rootfs下的一个子目录中,这与window文件系统完全不一样。
1.2 存储类文件系统
等同于WINDOW操作系统中的文件系统,常见的包括ext2、ext3、ext4、yaffs等,也支持FAT16、FAT32、NTFS等。
Linux下,只能有一个根文件系统,可以有多个存储类文件系统。
2 常用命令
参考资料:《Android内核剖析》,P6~P9
3 高阶:Shell脚本备忘
参考资料:《Android内核剖析》,P9~P15
4 高阶:Make脚本备忘
参考资料:《Android内核剖析》,P15~P25
5 嵌入式Linux编程环境;包括常用工具、Makefile、GCC等
学习重点:
ü Shell、常用Shell命令、Shell脚本的语法;
ü GNU Make、Makefile写法;
ü GCC编译器。
参考资料:《嵌入式Linux系统开发技术详解.pdf》
1 内核与驱动原理
学习重点:
ü Android Linux内核与标准Linux内核的区别;
Android Linux内核与标准Linux 2.6的内核基本相同,并在其基础上增加了私有内容,主要分为两类:
Ø Android专用驱动;
Ø Android设备驱动。
ü Android专用驱动的功能:
² Ashmem;
匿名共享内存。通过这种机制,可以为用户空间提供动态分配内存的机制,类似于malloc功能。
² Binder;
Binder为用户层应用程序提供了进程间通信(IPC)支持。在应用层通常只需要按照模板定义相关的类即可,不需要直接调用Binder设备驱动的设备节点。
Note:重要概念,后续需重点关注!!!
² Logger;
工具,为用户程序提供Log支持。
² PM(Android Power Management);
² Low Memory Killer;
² Android PMEM.
ü Framebuffer驱动
Framebuffer是显示设备驱动,字符设备,通常是/dev/fbX。
Framebuffer驱动为用户空间提供了ioctl/mmap/write等文件系统接口,如直接用write方式就可以输出显示内容。
Android对Framebuffer驱动的使用方式是标准的,在GUI系统中,通过调用Framebuffer驱动的标准接口实现显示设备的抽象。
操作framebuffer的主要步骤如下:
1、打开一个可用的FrameBuffer设备;
2、通过mmap调用把显卡的物理内存空间映射到用户空间;
3、更改内存空间里的像素数据并显示;
4、退出时关闭framebuffer设备。
ü Event驱动;
ü 各种设备驱动的结构层次。
2 C/C++框架层概要:Android底层库与程序
学习重点:
ü Binder机制工作原理;
J Binder机制和Linux原有的IPC机制的比较
J Binder的特点-面向对象
J Binder通信模型
ü 使用Binder机制在程序中创建IPC的方法;
ü Android系统进程;
ü 在Android中增加可执行程序、动态库、静态库的方法;
ü Init.rc启动脚本。
3 Java框架层概要:Android Java虚拟机与Java环境
学习重点:
4 关注一个子系统的实现原理,如GUI子系统(跨C框架层和Java框架层)
参考资料:
部门JAVA主题系列OJT资料
《Java程序设计实用教程》
1 Android应用程序开发
1.1 应用程序组成
1.1.1 Activity(活动)
1.1.2 Broadcast Receiver(广播接收器)
1.1.3 Service(服务)
1.1.4 Content Provider(内容提供者)
1.2 FDF
1.3 AndroidMenifest.xml
AndroidMenifest.xml是每个Android应用都必须有的文件,它为Andoird系统提供了应用的必要信息:
ü Java Package
ü Application Components
ü Process
ü Permissions
ü Instrumentation Classes
ü Required Android API Level
ü Libraries
1.4 Android应用的进程间通信:Android接口描述语言(AIDL,Android Interface Definition Language)
Note:在Android中, 每个应用程序都可以有自己的进程!
这部分十分重要,需要重点学习!!!
参考文件:
1.5
1 启动流程
学习重点:
★ Linux启动过程
参考资料:《Android内核剖析》,P4~P6
★ Android Framework启动过程
参考资料:《Android内核剖析》,第9章:Framework的启动过程,P144~P159
2 MTK平台驱动相关
3 电容屏原理、常见电容屏工艺
4 陀螺仪原理
5 接近传感器原理
1 MTK下载工具:Flash Tool
2 Android标准工具:AIDL
3 Android标准工具:DDMS
4 Android标准工具:TraceView
侧重于调试程序性能。
需具体了解!!!
5 Android标准工具:Hierarchy Viewer
此工具在android sdk目录的tools下,hierarchyviewer.bat。
hierarchyviewer工具用来查看android UI的树形结构。
可以用来熟悉一个模块的UI布局,也可以调试UI上的BUG。
需具体了解!!!
6
Android学习入门书籍推荐
Android编程入门教程andbook
andbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程序的基本原理和AndroidUI界面开发有个清晰的认识,相信你花上几个小时读过后,一定会跃跃欲试加入Android开发行列,心动吧,那就行动吧。。。–Google手持设备应用程序设计深入浅出AndroidAndroid–
入门书籍,作者写的很不错,可以在阅读SDK的同时阅读这本书,中间的一些使用介绍的非常清楚,最重要的是中文版的最早介绍Android的中文书籍,台湾人写的繁体版的,看得有些影响,不过还是值得耐心阅读的多个专家写的介绍Android的书籍,内容写的很不错,AsktheExpert部分针对一些问题作了详细的说明
对Android介绍的比较全面,从安装到开发,应该有新版本了。GoogleAndroidSDK(2)
以Android手机应用程序开发(采用AndroidSDK2.1)为主题,通过160多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力提供了很大的帮助。内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于GoogleMap的个人GPS、豆瓣网(Web2.0)客户端、在线音乐播放器、手机信息助手,为初学者学习与实践结合提供了很好的指导。
涵盖了Android平台1.5到2.2版本的主要功能特性,立足实际的开发案例,介绍了Android手机平台开发的基础概念、实用技术和应用模式。主要内容包括:平台基础、开发环境搭建、程序框架、高级界面和底层界面设计、文件系统管理、网络通信、无线通信、多媒体编程、个人信息管理、电话系统、数据库应用、XML应用和地图应用。开发实例多达120例。
如何成为Android高手
成为一名真正的Android高手必须掌握和遵循的一些准则:
1,学会懒惰
2,精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)
3,编写可重用、可扩展、可维护、灵活性高的代码
4,高效的编写高效的代码
5,学会至少一门服务器端开发技术
AndroidSDK1.5版的英文开发资料AndroidDevelopmentGuide中应用程序框架部分的翻译PDF文件。
Android学习计划书一Android的介绍11什么是AndroidAndroid是机器人的意思是Google公司于20xx年1…
Android学习计划一帮助网站bbsforumphp二学习计划第一周星期三0101Android平台一日游0102搭建Andro…
第一章开发环境搭建1Windows模拟开发环境11安装JDK12安装Eclipse13安装AndroidSDK14安装ADT学习重…
今日android学习计划今天上班8个小时我要拿出至少4个小时来学习android其余4个小时来适配新添的bug那么android…
1引言11编写目的12背景13定义14参考资料15标准条约和约定2项目概述21项目目标22产品目标与范围23假设与约束24项目工作…
Android学习计划书一Android的介绍11什么是AndroidAndroid是机器人的意思是Google公司于20xx年1…
Android学习计划一帮助网站bbsforumphp二学习计划第一周星期三0101Android平台一日游0102搭建Andro…
今日android学习计划今天上班8个小时我要拿出至少4个小时来学习android其余4个小时来适配新添的bug那么android…
20xx年度个人总结和计划逝者如斯夫不舍昼夜转眼间自己在XX网里参加工作已经有一年有余了回首即将逝去的20xx年可以说是平淡而不普…