所谓适配低版本,是指:
1软件需要能够在低版本android系统上运行
2软件需要能够在低版本上达到高版本的一些功能效果
要达到以上第一点,需要:
1代码中,使用到高版本的一些方法时,需要添加版本高低判断,在低版本上不调用高版本才有的方法。
2资源上面,针对不同的版本使用不同的资源文件夹,提供针对不同版本的资源文件。只使用当前版本拥有的资源属性和类型。
要达到以上第二点,需要:
1针对低版本上隐藏的api,可以使用反射的方式进行调用
2针对低版本上没有的功能或者资源属性和类型,使用适配包,appcompat
使用适配包的一般步骤:
1Application使用的主题需要是AppCompat主题
2baseactivity需要集成CompatActivity
3自定义的基础组件类型需要继承自CompatEditText。。。
4使用AppCompat支持的一些属性,一般是高版本中的属性将android:前缀去掉。
注意:
1不要混淆解决问题1和2使用的一些方法。
比如AppCompat中的属性是不需要区别不同的版本的。只有当你需要在低版本中去掉对高版本的一些属性的使用的时候才需要建立不同版本的资源文件夹,使得只在高版本中才使用这些属性,为了防止低版本中出现崩溃。
再比如你明确需要高低版本需要达到同样的效果,那么就不需要针对不同版本建立不同文件夹,需要做的是使用Compat包中的对应的高版本的属性。
2针对Compat包中无法实现的一些效果。
一般的需要要求高版本按系统提供的来,低版本需要一些特殊的技巧实现类似的效果。
这时候你需要做的就是建立高版本的资源文件夹,使用提供的属性。代码中针对高版本使用高版本提供的api,来实现需求效果。
针对低版本的,(结合Compat提供的有限的新功能)+自己的想象力和创造力去实现类似的效果。