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<params,progress,result>
params:启动任务执行的输入参数类型
progress:后台任务完成的进度值
result:后台执行任务完成后返回结果的类型
网友评论