/images/avatar.png

独孤

资源混淆方案之微信vs美团

前言:目前在Android市场有很多应用在开发之后都不注重对代码和资源文件的混淆,而且大部分的小众应用在传输数据的时候,直接是Http明文传输,在这一点上比起大公司在安全方面的 考虑是明显不足的.关于资源文件混淆,目前国内有美团和微信都给出了相关的方案,作为一个没做过资源混淆的人来说,来比较一下这两个方案.

自定义网络加载视图

NetworkImageView简介:

在布局中使用自定义视图:

1
2
3
4
5
<com.mrljdx.loadimage.NetWorkImageView
        android:id="@+id/myNetImgView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center_horizontal" />

自定义View小结

View基类呈现一个100x100像素的空白正方形,要改变控件的大小并呈现一个不同的界面则需要分别对onMesure和onDraw方法进行重写。 ** onMesure方法中,新的视图将会计算一系列给定的边界条件下占据的高度和宽度。 ** onDraw方法用于在画布上进行绘图。

AndroidManifest配置文件简介

在Android开发接触的最多的可能就是AndroidManifest.xml这个配置文件了,这里配置文件中包括了应用程序中的大部分信息,系统在运行代码时,需要知道这些基本信息。比如开发中的Activity、Service、Broadcast都需要在这里定义。如果用到了一些系统自带的服务比如拨号、应用安装、GPS定位等服务也需要在这里声明。

Android性能优化笔记

性能优化概要:

  • 不要在主线程中做耗时操作,比如网络请求,文件读写等。
  • 使用ViewStub来推迟初始化,在运行时展开资源。
  • 使用RelativeLayout代替嵌套LinearLayout,尽可能扁平化布局。减少创建对象的数量,也会让事件的处理速度更快。(了解View事件的传递机制)
  • 主线程中尽可能少做事,把耗时操作交给子线程。
  • Sqlite数据库,通过事务来操作。(当数据库在持久存储中使用事务耗时更短)
  • 对字符串操作用StringBuffer性能比较好
  • 避免建立对象,避免使用枚举,避免使用浮点数
  • 一般类中最好不用setter和getter
  • 将成员变量缓存到本地,因为访问成员变量比访问本地变量要慢的多。
  • 使用final关键字定义类中的常量或方法,在编译时能帮助编译器优化代码。
  • 使用实体类比接口好,因为调用一个接口的引用比调用一个实体类要多花一倍的时间。(偶尔不利于设计,看情况)
  • 在处理字符串的时候,使用String.indexOf(),String.lastIndexOf()等特殊实现的方法。这些方法都是C/C++实现的,比起Java循环要快10~100倍。