1.StartActivity进行跳转
建议:使用统一的页面跳转方法,便于对跳转时的逻辑进行统一控制。
便于修改逻辑。
public class ActivityA extends Activity{
public Static void startSelft(Context context,String id){
if(true){//满足一定的条件
context.startActivity(context,ActivityA.class).putExtras("UserId",id);
}else{
log.d("不满足条件:","不跳转");
}
}
}
//在另一个ActivityB要条状到ActivityA时
public class ActivityB extends Activity{
@Override
protected void OnCreate(SavedInstance s){
ActivityA.startSelft(ActivityB.this,"123");
}
}
2.当内存紧张时,app由后台切换至前台时,系统回收了全局变量,发生闪退
建议:全局变量应该配合SharedPreference(序列化到本地就行,当全局变量为空时,到本地来取)一起使用
3.页面请求网络接口数量
建议:每个页面初始化时尽可能少的调用网络接口,加快页面展现速度。
4.对用户的输入进行校验
建议:对用户的输入, 一定要进行校验。最好是用正则校验。
尤其对是否有emoji表情进行校验,因为后台数据库可能在存储emoji表情字符时发生异常。(解决办法,对emoji进行转码)
5.网络请求的解析
使用gson或fastjson等对请求的结果进行解析,不要直接使用JSONObject或JSONArray获取数据。
直接从数据字典中取值可能会发生异常(老是要用try catch),而且JSONObject不支持序列化,无法在页面间进行传递。
6.广播的使用
a.使用广播,设置action时使用的字符串应做统一的管理(写一个统一的字符串),以免引起错误。(名称:应用包名+动作名称)
b.不要滥用广播。
7.一些技术的推荐
热更新:
推荐使用阿里的热更新框架 Sopfix,简单易用
https://www.aliyun.com/product/hotfix?spm=5176.8142029.388261.331.DmnOuG
打开PDF文档:
使用android-pdfview库,或者使用后台解析成pdf.js,android端直接使用webview加载(腾讯的qq和浏览器目前基本是采用这样的方法)
解析文档:
使用poi库将word、excel、ppt文档解析为html文件进行显示。
http://blog.csdn.net/jbjwpzyl3611421/article/details/49612537
代码混淆:
使用proguard对代码进行压缩、混淆和优化。缩减方法数。
http://blog.csdn.net/ocean20/article/details/67634130
crash:
使用bugly收集日志,在后台可以看到上传的crash信息和其他自定义的信息。
减少apk体积:
A.res目录下废弃的资源文件,应备份后,从项目中移除,缩减apk安装包的体积。(使用lint检查无用代码和资源)
B.用到的图片资源,应在设计时进行优化(压缩和复用),尽可能地在保证图片质量的同时对图片大小进行控制。 https://tinypng.com/(提供几乎无损压缩)
(注:这是和同事再一次code meeting所交流,总结的一些东西)