Android 知识体系




一、性能优化
	1、布局优化
		减少层次,view数量,ReleativeLayout和LinearLayout(weight)选择,viewstub,merge,include
	2、代码优化
		a、防止内存泄露(使用弱引用代替)
		b、性能检测工具(DDMS,MAT,TracceView,HeryLayout)
		c、bitmap,采样压缩,尽量使用drawable,使用弱引用缓存
		d、效率优化 比如HashMap遍历可以采用迭代器
		
	3、网络优化
		a、使用gzip压缩,json代替xml,减少请求次数
		
		
二、安全机制
	1、代码混淆,对抗dex2jar(特殊代码块是jd-gui工具无法查看)
	2、对抗动态调试
		2.1、在配置文件加入debuggable=true让程序不可调试,在代码中进行判断,杀死进程
		2.2、检测模拟器  检测checkqemu的值是否为1,正常手机没有。、
	3、防止重新编译
		3.1、检测软件签名,获取signatures字段的值的hash
		3.2、校验保护,可对dex的md5,hash,crc进行校验,每次编译crc都会改变。
	4、加壳保护
	
		Util类通过MyClassLoader完成对加密classes.jar的动态加载,内存中解密classes.jar,完成动态加载。
		jni方法对应so函数名的混淆,在JNI_OnLoad方法中手动注册jni方法,不易查找对应关系。
		抗动态调试: 当使用IDA动态调试该程序时,程序无法建立连接调试。
	5、权限机制
		5.1、每一个应用程序运行有一个uid,gid,使应用程序直接隔离,不能访问。如果要访问,通过androidapi,或者shareUserId
		5.2、权限分为普通、危险、签名和系统签名级别,
		5.3、组件权限:为组件设定权限,要启动就要有权限。
	
三、基础
	3.1、源码角度分析
		a、view的绘制流程,viewgroup事件传递流程
		b、handler机制,looper,message,消息队列,HandlerThread(保证looper和handler同步,ThreadLocal相当于Map<threadId,Looper>)
		c、
		
	3.2、Fragment汇总
		a、fragment之间数据传递
		b、startActivityForResult接收不到数据
		
	3.3、屏幕适配
		多使用weight,创建多个不同的布局文件(平板和手机双面板布局),Google百分比布局
		
	3.4 Activity解析机制
		intent-filter(凡是指定的都必须有,action->data->categroy)
	3.5、打包流程
	
		
四、第三方框架/架构
	4.1、插件化机制
		a、替换getResource,通过AssetManager反射addAssetPath执行dex中的方法 。 addAssetPath.invoke(assetManager, dexPath); 通过assetManager创建出Resources。
		b、重写getResources()方法,【Activity->ContextWrapper->Context(抽象类,实现者ContextImpl)】,替换其值。
		c、使用代理的模式去管理activity声明周期。
	4.2、ImageLoader框架
		 a、bitmap强引用
		 
	4.3、Xutils框架
		a、BitMapUtils
		
		b、ViewUtils
		
	4.4、GreenDao
		
	4.5、MVC,MVP,MVVM架构
	
	4.6、EventBus框架
	
	
五、java
	5.1、内存模型
		a、堆和栈
		
		b、如何停止线程:使用标志字段,但对于阻塞线程(sleep)不起作用。可以调用线程interrupt方法,阻塞线程会抛出interruptException,在结合volatile关键字修饰字段可以解决。
		c、volatile对所有线程具有可见性,一个线程对其修改,其他线程可以获取修改的值。
		d、
	5.2、java和android虚拟机原理
	
	5.3、多线程并发
		synchronized,lock锁(需要手动释放锁),信号灯Semaphore
	 
	5.4、网络编程
	
六、设计模式
	单例,
	模板方法,
	适配器,
	观察者,
	工厂方法,
	代理模式
	
七、数据结构
	
	
	
	
	
	
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值