开发笔记


  • 正则表达式

    正则验证小于1000000且最多两位小数的正则:
    ^([1-9]\d?(.\d{1,2})?|0.\d{1,2}|1000000)$ 或者\d{6}.\d{2} 。

  • Fiddler 抓包

    用Fiddler抓包工具监控网络,并给自己的手机设置代理 查看自己电脑的IP 在 cmd中输入ipconfig 即可

  • 边界处理

    在对某个类进行操作,或者基于某个类给另一个类进行操作的时候,首先要判断要操作的那个类是否为空。

getactivity 这个方法在一个类中只有一个,所以有时候可以直接调用,不需要添加this标签。

对于某些函数中需要传递的参数,如果本类中没有该种类型,可以getInstance 也阔以尝试直接传递null替代。

  • 加载优化

    如果一个类中需要加载不同的多个界面,那么最好采用标签将其中一个界面嵌套进去,便于管理

  • 关于内存泄漏:
    开发中需要注意的点以免内存泄漏:

  • 不要让生命周期长于Activity的对象持有到Activity的引用

  • 尽量使用Application的Context而不是Activity的Context

  • 尽量不要在Activity中使用非静态内部类,因为非静态内部类会隐式持有外部类实例的引用(具体可以查看细话Java:”失效”的private修饰符了解)。如果使用静态内部类,将外部实例引用作为弱引用持有。

  • 垃圾回收不能解决内存泄露,了解Android中垃圾回收机制

  • 获取context的方法,以及使用上context和applicationContext的区别:
  • View.getContext,返回当前View对象的Context对象,通常是当前正在展示的Activity对象。

  • Activity.getApplicationContext,获取当前Activity所在的(应用)进程的Context对象,通常我们使用Context对象时,要优先考虑这个全局的进程Context。

  • ContextWrapper.getBaseContext():用来获取一个ContextWrapper进行装饰之前的Context,可以使用这个方法,这个方法在实际开发中使用并不多,也不建议使用。

  • Activity.this 返回当前的Activity实例,如果是UI控件需要使用Activity作为Context对象,但是默认的Toast实际上使用ApplicationContext也可以。

  • AccessibilityService 的相关介绍和使用
  • 介绍:AccessibilityService 可以用来自动化测试,自动抢红包,自动安装等第