一.java相关
1)基础
1.容器:map,list,set,vector,table,queue
2.各种输入输出流
3.枚举
4.注解
5.并发(线程,锁(进程锁,线程锁,自定义锁)等)
6.异常
7.关键字
8.内部类,静态类,匿名类,接口
9.反射
2)进阶
1.虚拟机(原理,回收算法)
2.java命令(javac,javah,javadoc等)
3.中间语言(smali)
4.JNI
二.android相关
1)基础
1.四大组件具体实现
2.assets,resoures(各种资源的写法,用法(比如attr),res目录里的命名规则,比例关系)
3.View及其子类(各view和layout)的实现
4.View的自定义(结合实例讲解重写最需要注意的方法和属性,比如onMeasure(),AttrSet等等)
5.Handler,AsynTask,IntentService等的实现(ThreadLocal)
6.Intent实现机制及其action,data,category,type,mime等等
7.Mainfest/Permissions
8.适配器原理(ListView,GridView,ViewPager)
9.touch事件的分发(包括多点触控) dispatchTouchEvent ----
10.fragment的实现原理
11.http(侧重各种网络库以及post,get,head等等的作用和实现)
12.socket
13.推送服务(侧重长连接原理和各种开源库)
14.sqlite
15.单元测试
16.各种开源项目和控件(开源view,开源框架,开源库,每人都可分享)
2)进阶
1.编译系统
2.系统启动流程
3.应用启动流程
4.assets,resoures加载和管理流程
5.activitythread
6.contextImpl
7.ams,wms,pms等系统服务
8.systemserver
9.binder,aidl
10.游戏
11.art,dalvik
12.rxjava
13.安装软件的流程
14.ndk开发
15.安卓病毒木马原理
16.插件化
17.multidex
18.rom制作/root
三.工具相关
1.gradle
2.mat
3.maven
4.ddms
5.内存,cpu,电量,网络监测工具
6.lint,findbugs
7.git,svn,cvs
8.反编译
9.防反编译
10.anr分析
11.崩溃分析
12.adb命令
四.技术拓展
1.脚本语言(perl,python,shell,groovy,ruby)
2.web开发(html5/css3/javascript,ajax)
3.服务器开发(Spring+SpringMVC+Mybatis,Go,node. js,php,python,java,c++,react)
4.c,c++
5.ios
6.linux
7.database(mysql,redis,oracle)
8.Windows编程(c#,c++)
9.hack技术
10.单片机
五.理论加固
1.设计模式
2.算法
3.编译原理
4.类图,时序图,流程图
网友评论