在计算机这个浩瀚的的世界里,每一个分支都足够你去钻研一辈子,从一开始接触C语言,到后来的C++,接着学了java,这才勉强知道编程为何物,……!

从暑假开始在外面实习的这段时间里,做过开发,做过售前技术顾问,到现在的系统维护,亲身感受了各种工作环境,怎么说呢,拿不准什么发展好什么又没前途,只能说哪一个行业都能搞,????说实在的,这可不是我一直以来所希望的。我想做的是开发,最喜欢前沿技术的研究,所以经常看草根网、51cto这一类网站,看看现在什么又热啦,什么呢又有所下降!

看来看去,也清醒的思考了很久,决定往android这个火爆的阵营里钻,以前学过一些android应用的开发,但总觉得学东西总不能学个大概,所以决定从android最底层的东西学起!当然这又牵涉到很多其他的知识,所以本人决定追随前人的步伐,继续奋斗,做一个技术"×××士"!下面将是我的学习计划:(跟大家分享一下)

第一阶段:基础知识强化

一、深入计算机系统

计算机中数据的表示方法、计算机硬件的组成结构及各部件的功能介绍、计算机指令与程序,程序代码的组织结构、操作系统概念、机器语言到高级语言、计算机软件的运行过程及计算机启动原理、计算机网络。

二、嵌入式操作系统基础

嵌入式操作系统的基本概念; Unix简介; Windows Mobile简介; Linux基础知识和系统安装;Linux常用命令,文本编辑器vi,简单shell脚本编程; Linux开发环境基础:Gcc,Gdb,Make和Makefile; 嵌入式软件开发环境搭建与使用。

三、嵌入式C/C++语言

基本数据类型和运算;控制结构;内存分配、堆内存和栈内存;C字符串处理;数组与指针;指针类型、指针运算、函数指针、指针与引用、函数定义、函数调用、参数传递、递归;结构体与共用体;位运算和位结构;文件操作;预编译、条件编译;宏定义、对象宏和函数宏;类与对象;函数重载技术与运算符重载;类的继承与派生;虚函数与多态性;函数模板与类模版;输入/输出流和文件操作;模版机制、STL;预编译;异常处理;嵌入式C语言开发特性;GNC C拓展。

四、VC++快速进阶

Windows程序运行原理及程序编写流程;窗口产生过程;句柄原理;消息队列;回调函数;VC工程的编译原理与过程;MFC AppWizard的原理与MFC程序框架的剖析、MFC消息映射机制的剖析;CDC的文字处理程序的编写;Socket网络程序的编写;进程间通讯的四种方式;Hook编程。

五、数据结构强化

线性表、栈和队列、链表、树和二叉树、索引表、索引树、排序。

六、阶段项目实战与测试

通过深入了解Linux系统调用功能,开发Linux环境下多任务编程,掌握网络socket接口调用的方法,开发终端程序,并熟练使用开发工具进行调试。

第二阶段:ARM高级开发

一、ARM体系结构

嵌入式系统处理器简介;ARM处理器体系结构;ARM芯片选型与外围硬件设计;ARM 操作系统(ARM Linux /WinCE/Anroid)

二、ARM内核结构

ARM应用内核;ARM嵌入式内核;ARM安全内核;ARM流水线结构;ARM寄存器结构;ARM工作方式;ARM存储器格式;ARM运行模式;ARM总线AHBA结构。

三、ARM指令系统

ARM指令系统概述;ARM指令集;ARM寻址方式;Thumb指令集;ARM/Thumb交互;ARM汇编语言编程;

四、ARM运行机制

ARM启动代码的基本流程;ARM程序的存储和加载;ARM启动代码的迁移过程;ARM启动代码的初始化流;ARM异常处理流程概述;ARM异常向量表;ARM未定义异常的特殊处理;AWI 软中断指令与系统调用。

五、ARM基本开发

ADS 集成开发环境;ARM编译器设置与使用;ARM链接器设置与使用;ARM调试器设置与使用;ARM内存地址重映射;ARM堆栈初始化;ARM段地址分配。。

六、阶段项目实战与测试

在ARM开发板上通过调用LCD驱动程序,实现汉字显示功能。

第三阶段:嵌入式Linux开发

一、嵌入式Linux构建

嵌入式Linux综述;典型bootloader(uboot、armboot、redboot);Linux内核编译和配置;根文件系统构建;嵌入式Linux开发工具介绍;Linux的gdb调试。

二、嵌入式Linux图形用户界面

Qt概述;Qt designer;Qt定制;Qt交叉编译。

三、嵌入式数据库系统

关系数据库基础与强化;SQL基础与强化;Sqlite嵌入式数据库编程。

四、嵌入式Linux进程编程

进程基本概念;线程基本概念;进程与线程;Posix线程;线程状态转换;线程同步;IPC高级编程;Qt多线程编程。

五、嵌入式Linux网络编程

TCP/IP协议;客户端服务器编程;Socket编程;Web服务器编程;Qt网络编程。

六、嵌入式Linux系统移植

Bootloader移植;交叉编译链;链接脚本分析;构建jffs2和cramfs文件系统;操作系统移植;应用程序移植;Linux板级移植;Linux平台级移植。

七、嵌入式Linux驱动开发

Linux内存管理;Linux设备管理;Linux文件系统;Linux设备驱动程序;Linux字符设备驱动程序;Linux fs_operation结构分析;Linux块设备驱动程序开发;Linux块设备驱动注册接口;Linux块设备驱动操作接口;Linux块设备驱动request队列;Linux块设备源码分析;Linux网络设备驱动程序;Linux input驱动开发;Linux下的MTD驱动;Linux LCD设备驱动程序开发;Linux USB设备驱动程序开发。

八、阶段项目实战与测试

实现一个真实完整的嵌入式项目,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术:
Linux的内核编译与裁剪
根文件系统的搭建与裁剪
A/D转换设备驱动程序
socket网络通信程序
sqlite和CGI应用程序

第四阶段:Andriod系统开发

一、Android操作系统概述

Android平台介绍;Android平台特性;Android平台架构;Android Navtive C/C++程序开发;Android NDK;Native开发方式与JAVA开发方式比较。

二、Android开发环境搭建

Android SDK介绍;Eclipse ADT插件;Android模拟器开发。

三、Android项目结构分析

资源管理(Resources)分析;drawable分析;layout分析;Activity分析;Intent分析;Service分析;Content分析。

四、Android UI设计

标准控件的使用;设计开发自定义控件;Layout布局的使用;触摸/按键(UI Events)事件处理方法;View,SurfaceView,Canvas,Paint类分析使用;显示文本以及显示特殊效果文本;绘图及显示图片;实现动画效果。

五、Intent Receive

Intent的作用和目的;属性讲解;Android定义解析Intent;AndroidManifest.xml深入分析。

六、Service

什么是Service,如何使用Service,Service的生命周期,BroadcastReceiver的使用。

七、Content Provider

SQLite介绍,创建Content Providers,使用Content Providers,使用URI语法进行增删改查。

八、Android高级应用开发

访问本地通讯录;网络连接的相关知识;流媒体的处理;URLConnection和HttpURLConnection的应用;
HttpClient的分析;本地文件浏览管理;音视频播放处理;Widget应用开发。

九、Android程序发布部署建

Android 调试桥;启用logcat日志调试;模拟器上安装删除软件;打包、签名和安装软件到设备。

十、Android底层架构分析

移植Android到新的硬件平台;需要支持Linux 操作系统的硬件平台架构分析;支持Android的Linux内核特性分析;为Linux内核增加Android特性;移植Android Debug Bridge调试接口;编写/移植Android内核驱动;硬件支持double frame buffer/page flipping;bionic库移植与优化;Dalvik Vm移植;第三方应用程序移植;建立Android移植开发平台;新的嵌入式处理器引入的Android相关问题;获得高效的Android工具链。

十一、Android移植

支持ARM11的Linux-2.6.28内核新特性简介;移植LCD double buffer驱动;移植触摸屏驱动;移植Android键盘驱动;移植Wifi驱动支持Android上网功能;移植电源管理驱动,支持Android电池管理;部署Android系统到实际ARM11平台。

十二、阶段项目实战与测试

通过对ITelephony接口和ISms接口以及AIDL在Android程序中的开发应用,开发一个打电话和发短信的程序。

第五阶段:移动通讯3G技术

一、移动通讯基础

无线通信网络的概念;GSM-UMTS-LTE的演进过程和网络体系结构;GSM电路域CSV业务流程;GPRS/EDGE分组域(PS)数据业务基本流程;IMS网络体系结构。

二、3G基础技术

什么3G;WCDMA简介;CDMA2000简介;TD-SCDMA简介;TD-SCDMA基本技术构成。

三、WAP技术

WAP协议;WAP建站系统业务模型;WAP建站系统业务流程;无线标记语言WML;Xhtml MP、WCSS。

四、SMS/MMS开发

SMS/MMS协议;SMS/MMS移动增值业务开发流程。

五、GPS/LBS手机定位开发

GPS卫星定位技术介绍;LBS位置服务介绍;手机定位系统开发的基本流程;手机定位系统的技术架构。

六、3G流媒体技术

流媒体技术介绍;3G流媒体技术概述;3G流媒体文件格式;移动手机视频客户端开发技术。

七、阶段项目实战与测试

开发一个手机定位服务,实现POI位置查询功能。

第六阶段:综合项目实战

转载于:https://blog.51cto.com/aoxiangluyu/678837

android学习之旅-学习计划相关推荐

  1. 基于 Android NDK 的学习之旅-----资源释放

    基于 Android NDK 的学习之旅-----资源释放 做上一个项目的时候因为与C引擎交互频繁,有时候会突然莫名其妙的的整个应用程序直接挂掉.因为我是学Java 开始的,所以对主动释放内存没多大概 ...

  2. 基于 Android NDK 的学习之旅----- C调用Java

    2019独角兽企业重金招聘Python工程师标准>>> 基于 Android NDK 的学习之旅----- C调用Java 许多成熟的C引擎要移植到Android 平台上使用 , 一 ...

  3. 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码)

    基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String ...

  4. 【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

    原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据 ...

  5. 基于 Android NDK 的学习之旅-----Java 调用C(附源码)

    基于 Android NDK 的学习之旅-----Java 调用C 随便谈谈为什么要Java调用C 吧: 我认为: 1.  有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所 ...

  6. Android热修复学习之旅——HotFix完全解析

    在上一篇博客 Android热修复学习之旅开篇--热修复概述中,简单介绍了各个热修复框架的原理,本篇博客我将详细分析QQ空间热修复方案. Android dex分包原理介绍 QQ空间热修复方案基于An ...

  7. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅④如何在Android开发低功耗蓝牙ble控制 TB-02 模块,代码工程全部开源!(附带Demo)

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小白也痴迷,如 ...

  8. 小猪的Python学习之旅 —— 16.采集拉勾网数据分析Android就业行情

    小猪的Python学习之旅 -- 16.再尝Python数据分析:采集拉勾网数据分析Android就业行情 标签:Python 一句话概括本文: 爬取拉钩Android职位相关数据,利用numpy,p ...

  9. Android的学习之旅

    Android学习之旅 首先声明一点,自己不是科班出身,本科是车辆专业,到研究生之后仍然是车辆专业,但是由于选择的研究方向,自己开始逐渐接触java.android以及java web的知识,时间回到 ...

最新文章

  1. 办公word,ppt,excel问题
  2. Applet相关知识
  3. c语言1至1000能被7或11 个数208 数下来没有208个,数学高手看过来:10000以内不能被3,5,7,9,11中任何一? 爱问知识人...
  4. 如何简单地利用Bitmap为中介储存图片到数据库中
  5. js 递归编程要注意的:return
  6. 借助财务客户评估解决方案在云中构建AppDev
  7. php 游标 上移,jQuery点击input使光标移动到最后或指定位置
  8. cacti 升级php,Cacti 升级备忘
  9. MySQL高级-MySQL并发参数调整
  10. day12 python学习随笔 中
  11. python小技巧 - 如何成为Python高手
  12. Android 手把手教您自定义ViewGroup(一)
  13. 剑指offer(C++版本)
  14. 一个小时,零基础入门,看完这篇30行代码 教你实现百度换肤!
  15. moss列表 查看字段长度
  16. Linux生成校验文件asc,使用 GnuPG 加密签名来验证下载文件的可靠性和完整性
  17. 微信小程序(一)DES加密
  18. 数据结构----主席树
  19. 发动机连杆产品配置管理PDM解决方案
  20. html背景图片css怎么添加,css样式怎么插入背景图片?

热门文章

  1. Git 使用遇到的各种问题
  2. Angularjs 中的 controller
  3. git关联远程仓库和删除远程仓库
  4. JSON字符串和对象 的转换
  5. HTML 5 全局属性
  6. OJ 169 Majority Element
  7. 在Asp.net+FCKEditor设置最新最完整配置方法(转帖)
  8. WEB前端 Vue 全家桶介绍
  9. oracle-bone,Oracle Bone Inscriptions / 甲骨文
  10. html设置标签上下居中,html 标签内部元素上下居中