您的位置:首页 > 移动开发 > Android开发

嵌入式实验室,安卓方向学习路线(详细版)

2016-08-16 10:54 309 查看
初级(大一暑假培训期间需要学会)

1. Java 环境的搭建与配置

2. Java基本数据类型与表达式,分支循环。

3. String和StringBuffer的使用、正则表达式。

4. 面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收

5. 构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类。

6. 对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;

7. 基础PS的使用(抠图,模糊,蒙版使用)

8. UI界面、UI设计基础、NinePatch图的使用与绘制(以PPT为例)

9. 常用颜色的16进制表(#000000,#FFFFFF,#00066cc,#F39007)

10. 熟悉安卓以后的就业方向与发展前景

11. 搭建Eclipse环境,并熟悉项目的目录结构

12. AndroidManifest.xml了解

13. 搭建As环境,并熟悉项目的目录结构

14. 熟悉Eclipse的快捷键,熟悉As的快捷键

15. 更改编码方式,更改字体大小,更改背景

16. 安装SDK,配置原生虚拟机

17. 安装Genymotion虚拟机

18. 了解基础的adb命令(adb shell ,su,adb start-server,adb devices,adb logcat,adb install,adb uninstall,adb pull,adb push)

19. 搭建Vmware虚拟机,并搭建Linux环境(RedHat,Ubuntu,Centos)

20. 学习Linux基本操作(cd ,ls,mkdir,grep,rm,cp,chmod,reboot等等)——引申Linux的学习

21. 使用真机调试(USB版或无线版)

22. Android项目的目录结构(As和Eclipse)

23. DDMS的查看,以及Logcat的使用,不同的优先级(V,D,I,W,E,F,S等)

24. Debug调试技巧

25. Activity的生命周期

26. Intent的显式和隐式以及startActivityForResult学习

27. Intent 传递值初级(.简单或基本数据类型,传递一个Bundle)

28. 基本布局(RelatedLayout, LinearLayout,AbsoluteLayout,FrameLayout,TableLayout(TableRow),SlidingPaneLayout,GridLayout,RadiaGroup)实现一个登陆注册界面

29. 基本控件(TextView,Button,RadioButton,CheckBox ,EditText,ImageButton,Datepicker,DigitalClock,AnalogClock,ProcessBar,SeekBar,Switch,ToggleButton,Spinner,ScrollView,RatingBar)

30. Date与Time的相关控件(TextClock,AnalogClock,Chromometer,DatePicker,TimePicker)

31. 学习XML相关的知识,使用xml给按钮添加点击效果

32. 点击事件(4种)

33. SharePreference的使用

34. Dialog的使用(AlertDialog等)

进阶(大二)

1. Java构造函数、this关键字、方法和方法的参数传递过程、static关键字静态、内部类。

2. 对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。

3. .Java异常处理,异常的机制原理。

4. JavaAPI介绍:种基本数据类型包装类,

5. System和Runtime类,Date和DateFormat类等。

6. 常用集合类API,比如Collection、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等

7. Java IO流的相关知识,I/O流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类

8. Java 多线程,多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。——引申操作系统进程与线程的区别

9. Java高级特性:反射和泛型。

10. Java 枚举Enum

11. Application的使用

12. Configure的使用(屏幕方向)

13. Activity的启动模式launchmode学习

14. Activity保存数据onSaveInstanceState

15. Gradle的相关知识

16. 优雅的统一的退出程序——引申数据结构队列与堆栈

17. Fragment生命周期,以及相关的使用场景(DialogFragment)

18. ViewPager的使用(对比与ViewFlipper学习)

19. Fragment+ViewPager(Tab的实现,广告界面的实现,引导界面的实现)

20. SQlite3的使用(增删改查)(结合密码盒子项目学习)——引申数据库增删查改

21. ListView,GridView的基础应用

22. Gallery的使用

23. Autocompletion的使用

24. ExpandableListView的使用

25. Adapter的使用(SimpleAdapter,BaseAdapter,ViewHolder )

26. SlideMenu的使用

27. Menu的使用

28. SlidingDrawer的使用

29. TextWatcher,ImageWatcher的使用

30. Gesture的使用,手势识别

31. 回调机制的应用

32. Include以及ViewStub的应用

33. Intent传值进阶(传递Serializable对象,Parcelable对象)

34. 第三方jar包的使用

35. 接触框架,从Xutil开始学习什么是框架,Android IOC框架等

36. Picasso的应用,纵向对比其他图片处理框架。

37. Animation动画效果的实现(视图动画,属性动画)

38. Thread主线程,UI线程,子线程,如何开启子线程(多种方式)

39. 网络访问相关(get ,post,异步任务AsyncTask,HttpClient,HttpURLConnect)——引申计算机网络的相关知识(应用层),HTTP协议相关知识,网络体系结构,TCP/IP协议,TCP及UDP编程,服务器模型,超时控制,协议分析,wireshark抓包工具分析抓包。

40. 与本地Tomcat通讯,实现数据交互,显示网络图片等功能

41. 使用Get方法向服务器提交数据的方法

使用POST方法向服务器提交数据的实现方法

42. 使用Http协议实现多线程下载

使用Http协议实现断点续传

43. 网络通讯的多种方式和线程控制(使用json的方式,使用socket连接的方式)

44. (结合智慧餐厅或智慧衣柜项目学习)

45. WebView相关的使用

46. Handler的消息传递

47. Json的使用,解析JSON,解析XML(多种方式)

48. Service的生命周期

49. Service的应用(StartService,BindService音乐播放器)

50. IntentService与Service的对比

51. BroadcastReceiver(开机自启动功能)

52. Content Provder的学习

53. MediaPlayer多媒体的应用(视频播放器VideoView,Audio的使用,Vitamio框架)

54. Rss的使用

55. File的使用(内部,外部存储)

56. Asset与Raw对比

57. Raw文件的读取

58. 访问SDCard的方法

59. SD卡处理相关的技巧(相机功能)

60. SQLite3编程接口介绍——引申数据库的设计

SQLite3事务管理

SQLite3游标使用方法

SQLite3性能分析

61. 桌面Widget的应用APPWidgetProvider

62. Zxing的使用,实现二维码功能

63. 实现换肤功能

64. 国际化,values文件夹的处理

65. 基础Git命令的使用,掌握用Git管理自己的项目,版本控制器

66. 接触第三方后台(Bmob,ShareSDK,友盟等接入)

1) 推送功能实现

2) 分享功能实现

3) 短信验证功能

4) 嵌入广告功能

沉淀(大三)

1. Java线程池,反射,内存管理

2. Java 的正则表达式

3. Java 的23个设计模式学习(常用的设计模式:Singleton、Template、Strategy模式)

4. Material Design的设计风格,使用支持包(对比与Halo风格对比)

5. CardView的使用

6. FloatingActionButton,Navigationbar等新控件的使用

7. ListView全选与反选

8. 属性动画的工作原理

9. 自定义ListView,可折叠ListView

10. ListView的优化和美化(学习RecycleView的使用)

11. App Links功能的实现

12. 打造万能的Adapter,自定义Adapter

13. ListView的高级应用(下拉刷新,上拉加载更多)

14. ActionBar以及它的支持包的使用等(setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled 方法的理解)

15. 对Context类的进一步理解

16. 自定义Gallery的使用(控制滑动速度)

17. View滑动原理,弹性滑块,滑块冲突

18. 搞懂view的measure、layout和draw

19. 屏幕适配方案

20. 事件分发机制

21. Canvas与Paint

22. 自定义View,ViewGroup

23. View绘制的原理

24. 自定义常用控件(TextView,Button,EditText,ImageButton,Datepicker,DigitalClock,AnalogClock,ProcessBar,SeekBar,Spinner,ScrollView,CheckBox,ExpandableListView)

25. 自定义Date与Time的相关控件(CalendarView)

26. SurfaceView的使用,View与SurfaceView的对比

27. 图片处理(压缩,旋转,加载大图OOM,复制等)

28. Bitmap的使用(BitmapShader)

29. Matrix的使用方法。

30. 反编译APK

31. 学会查看安卓源码

32. 了解符合趋势主流框架,至少知道应用在什么情景,遇到合适情景才能去使用

33. 熟悉网络请求(Volley,okHttp(鸿洋okHttpUtil),Android-async-http)

34. Gson框架的使用

35. 数据库框架的使用(GreenDao,)

36. 了解一下Ant

37. JUnit的使用

38. Otto框架以及EventBus学习

39. 网络图片加载 Picasso / UIL

40. View注解 Butterknife

41. DB会用CursorLoader配合contentProvider来做本地缓存

42. JSON解析会采用GSON

43. 数据更新通知可能会采用EventBus 或者otto 代替broadcast

44. 消息提示AppMsg 代替系统Toast

45. 圆形图片CircleImageView

46. Linux中Make,MakeFile的使用

47. APK签名

48. 网络爬虫的实现,Java用Jsoup爬虫HTML数据

49. 定位,以及相关地理的解析LocationManager

50. 第三方平台应用进阶

1) 百度地图,高德地图的使用

2) 用接口实现天气预报

3) APP的推广方式学习

4) 语音识别功能

5) 统计分析

6) 移动支付(微信,支付宝)

7) 实时聊天(百度云推送)

(移动应用开发方向初级培养)

1. Android性能优化,相关工具的使用(MAT,Heap,adb shell ,TrackView,Dalvi日志,logcat)

2. UI优化的相关方法(布局层次结构,HierarchyViewer,Lint工具)

3. 电量优化的相关方法,如何减少耗电

4. 开发内存性能分析与优化(内存泄漏等OOM,GC技术)

5. ANR

6. 消息机制的深入了解(Handler,Message,Looper等)

7. 安全机制分析与技术

8. 打包的全过程分析

9. Activity的启动模式以及异常情况下不同Activity的表现

10. Service的onBind和onReBind的关联

11. onServiceDisconnected(ComponentName className)和binderDied()的区别

12. AsyncTask在不同版本上的表现细节

13. 线程池的细节和参数配置

14. 代码混淆技术

15. 测试需要(Monkey,MonkeyRunner,Junit等)

16. MD5加密算法

17. MVC架构(MVP架构,MVPP)

18. 网络请求进阶:RxJava的retrofit结合

19. 学java web的相关知识,jsp,servlet,SSH框架的学习,SpringMVC框架

20. Redis知识

21. 搭建MySQL平台,熟悉操作界面(navicat,workbench)

22. 测试框架的学习(FestAndroid)

23. 学习CSS3+HTML5实现WebAPP的开发

24. 安卓与js交互

25. Kotlin进行安卓开发

26. 微信相关知识

27. PHP学习

(嵌入式安卓开发方向初级培养)

1. AIDL,Binder机制,Stub等IPC内容,远程服务等

2. C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识。

3. linux内核的起源、发展历程以及目前广泛的应用场合

4. 概述了linux系统的基本组成框架及组件功能

5. 详细介绍Linux下的文件管理、用户管理、网络管理、软件管理等基本命令

6. VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具

7. 嵌入式产品需求分析和选型、硬件平台、移植、启动代码、驱动开发、系统部署等整个过程。

8. AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;

9. 从Java层大概理解Binder的工作原理,懂Parcel对象的使用;

10. 并发程序设计,多进程编程,进程间通信机制,多线程编程,多线程间的同步和互斥机制等

11. 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;

12. 了解SystemServer的启动过程

13. 了解主线程的消息循环模型

14. 了解AMS和PMS的工作原理

15. 能够回答问题”一个应用存在多少个Window?“

16. 了解四大组件的大概工作流程

17. 搭建Android源码编译环境

18. Android源码编译流程

19. Android源码结构

20. 下载编译Android源码

21. Android系统启动流程分析

22. 定制产品系统

23. Android移植技术要点分析

24. 硬件抽象层实战等。

25. Android系统服务的原理

26. 如何使用TQ210烧写安卓镜像

27. 如何实现一键关机,在安卓中调用Linux命令

28. JNI以及NDK的使用

29. 单片机基础(包括IO、串口、看门狗、PWM定时器、模(ADC)、实时时钟、SPI、IIC、CAN总线、NAND FLASH、DMA操作等)

30. 物联网基础的内容,传感网中的热点技术(zigbee,RFID)

31. HeadSet

32. USB

33. 蓝牙通讯,能够与单片机上的蓝牙模块进行简单的一个交互

34. NFC功能

35. 电话、短信功能

36. 传感器开发(重力传感器,加速度传感器,方向盘,摇一摇功能)

37. Wifi通讯

38. ART模式和Dalvik虚拟机

39. 指纹识别技术的学习

(安卓游戏开发方向初级培养)

1. 算法

2. 数据结构

3. View以及SurfaceView

4. 2D图形编辑

5. 图片处理

6. Open GL ES技术

7. 碰撞检测

8. 物理引擎

9. 游戏资源调度

10. Cocos 2d 框架

11. 性能优化

12. 3D游戏,动作游戏设计

13. 游戏图层处理

学习方式:

从慕课网,几个大牛的CSDN博客,公众号,3本书中等

StackFlow网站

学习建议:

1. 在学习过程中强化对Java基础知识的理解,完善类的封装,探索类的高级属性在Android的应用.

2. 使用常用的笔记本记录笔记“有道云笔记”或“印象笔记”

3. 学会写Markdown文档

4. 按需要调整,或择取部分学习

5. 多总结,勤思考,注意代码规范.(命名规范,注释规范)

经典必看书籍:

1. 《第一行代码》

2. 《安卓群英传》

3. 《Android开发艺术探索》

4. 《App研发录》

5. 《Android 源码设计模式解析与实战》

6. 《Android内核剖析》

各种资源网站:

1. 视觉中国——ppt的插图网站

2. Iconfont——icon图标网站

3. ProcessOn——设计各种图(流程图,泳道图)

4. 百度脑图——设计功能需求等

5. 牛课网——刷面试题的网站

6. 盘多多——免费搜索并下载各种pdf文档的网站
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  嵌入式 android java