内容纲要

• Android自定义View封装的必要性

• Android自定义View难于封装成jar包的原因

• Android自动生成的R类简介

• Android打包R类的解决方案

• 用反射方式实现解决方案

• 注意事项

View封装必要性

• 封装是为了复用

• 封装是为了积累成果,避免“重复发明轮子”。

• 而做为手机客服端开发,视图界面的开发工作量已经是主要

工作类容之一。从而更显出View的封装的必要性,和实用性


难封装的原因

• 系统自动生成的R类如果被打到jar包中后,就失去了索引资源的作

用。导致封装成jar包的view无法获取对应资源。因为R类的属性值

是在应用编译打包时由系统自动分配的。


R类简介

• R是在程序编译时自动生成的,相当于资源字典或索引。

• R类结构示例如下图:

打包R类的解决方案

• 问题

R类打包之后失效,实际是因为R类的内部类里面的属性失效,因

为打包之后这些属性的值就固定了,但是实际项目中这些值是在编译

时有系统自动分配的,无法在编译前固定。

• 解决思路

如果能在view初始化(及程序运行时),执行一个初始化过程,

将此时项目中R内部类的对应值,复制给view jar包中的R内部类的对

应值,则能解决这个问题。由于各个View jar包中的R类内部类的属

性个数和属性名是不确定的,所以使用java反射机制来实现上述思路 。


解决方案


注意事项

更多相关文章

  1. aapt日常日常使用记录
  2. Android线程封装基类Thread
  3. Android(安卓)studio 打包自定义apk名称
  4. 阿里云面试(android)
  5. Android之编译打包apk的技巧
  6. ionic应用的Android打包签名发布步骤
  7. 关于android eclipse 打包出现android-sdk-windows\tools\supp
  8. [UE4.4.x] 虚幻4 安卓打包
  9. Android多渠道打包方案的实践与优化

随机推荐

  1. SpringSecurity实现动态管理权限(三)
  2. JAVA中synchronized与static synchronize
  3. JAX-RS应用程序发布方式
  4. 搞懂java中的synchronized关键字
  5. SpringBoot结合MyBatis Plus 自动生成代
  6. java之concurrent包中的Atomic类
  7. SpringBoot项目通用功能及框架知识点介绍
  8. 深入理解JVM—JVM内存模型
  9. mymes部署虚拟机安装以及使用Linux,看一
  10. 学习Linux的第7天