Android日常笔记

Android项目开发建议:

1、全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框,统一构造器的建立,万一需要整体变动,一处改动个处处有效。

2、数据库表字段常量和SQL逻辑分离,更清晰,建议使用Lite系列狂降LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节

3、全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中

4、不要相信庞大的管理类的东西会带来什么好处,可能是一场宅男,而要时刻注意单一原则,一个类专心做好一件事

Android性能优化

Java垃圾回收机制

发现无用对象,回收被无用对象占用的内存空间,使得该空间可以被程序再次利用。

垃圾回收特点:

1、垃圾回收机制的工作目标时回收无用对象的内存空间,这些内存空间都是JVM堆内存的内存资源,对于其他物力资源,如数据库连接,磁盘I/O等无能为力

2、为了让垃圾回收机制尽快回收那些对象,可以将该对象的引用变量置为null

3、垃圾回收发生的不可预知性,不同JVM采用不同的算法和机制,有可能定时回收,也有可能CPU空闲时回收,或者内存消耗极限时发生,即使通过RunTime对象的gc(),System.gc()来建议系统进行回收,但这只属于建议,不能精确控制垃圾回收机制的执行

¥ 确保每一个对象都进行了有效的释放,对于不再需要的对象,不要引用它们,一旦在别的地方保持对这个对象的引用,垃圾税收机制暂时不会回收该对象,则会导致严重问题———系统可用内存越来越少,垃圾回收执行的频率越来越高,CPU被垃圾回收操作占有,系统性能自然就下降了 ¥

简单的内存泄漏:对没有使用的对象循环使用
复杂的内存泄漏:在ListView还没绘制完成时就添加activity

Heap Viewer可有效的分析程序在堆中分配的数据类型及数量和大小

Android两种方式事件处理
1、基于回调的事件处理
2、基于监听器的事件处理

Androdi的事件处理机制是一种委派式(Delegation)事件处理方式
普通组件(事件源)将整个事件处理委托给特定的对象(事件监听器),当该事件源发生制定的事件时,就通知所委托的事件监听器,由监听器处理这个事件。

事件监听的处理模型涉及三个成员:事件源、事件和事件监听器

实现事件监听器:
1)内部类形式:将事件监听器定义为当前类的内部类
2)外部类形式:将事件监听器定义为外部类
3)Activity本身作为事件监听器类:Activity本身实现监听器接口,并实现事件处理方法
4)匿名内部类:使用匿名内部创建事件监听器对象

** Activity的主要职责时完成界面初始化工作

1)监听器类时外部类的内部类,所以可以自由方位外部类的所有界面组件
2)使用外部类定义事件监听器类较少,主要原因:
&& 事件监听器通常属于特定GUI界面,定义成外部类不利于提高程序的内聚性

&& 外部类形式的事件监听器不能自由方位创建GUI界面的类中的组件,编程不能简洁

基于回调事件处理


Android默认约定当UI线程阻塞超过20秒,会引发ANR(Application Not Responding)异常


异步任务 AsyncTask<> 抽象类,适用于简单的异步
AsyncTask

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值