android开发经验
1.选好"车轮"
一个项目的开发,我们不可能一切从0做起,如果真是这样,那同样要哭瞎。因此,善于借用已经做好的 "车轮" 非常重要,如:
网络访问框架:okhttp、retrofit、android-async-http、volley
图片加载框架:Android-Universal-Image-Loader、Glide、Fresco、Picasso
缓存框架:DiskLruCache、 Robospice
Json解析框架:Gson、Fastjson、Jackson
事件总线:Rxjava,EventBus、Otto
ORM框架:GreenDAO、Litepal
还有其他各种各样开源的自定义控件、动画等。除了以上提到的开源框架,也包括一些不开源的SDK
数据统计:友盟统计,百度统计...
奔溃搜集:腾讯bugly、bugtags...
云存储:七牛...
即使通讯:环信、融云、阿里百川...
推送:小米推送、腾讯推送、百度推送...
安全加固:360加固宝、爱加密...
2.抽象依赖第三方框架
降低我们对具体某个框架的依赖性,从而方便我们快速切换到不同的框架去
假设你当前为项目引入一个加载图片的框架UML,你在代码中每个需要加载图片地方都需要用到UML对外暴漏的API.有一天
新的图片加载框架Fresco你也想体验一把时,就要改很多地方,估计你会吐血。。。。
所以我们要抽取出来这些依赖的框架,方便我们管理和替换成新的框架。
3.扩大技术圈
有空又经济能力承受得起的时候,不妨去参加一些自己感兴趣的技术交流会。听听人家的解决方案,拓宽一下自己看问题的思路,也可以多参加一些含金量高的线上活动。有时候遇到一些技术问题,还会互相探讨交换一下解决思路。挺赞的!
3.代码归档
把一些常用的工具类或业务流程代码进行归类整理,加入自己的代码库。如下载,播放视频,加解密、拍照、裁剪图片、获取系统所有图片的路径、自定义的控件或动画以及其其他他一些常用的工具类等。归档有助于提高你的开发效率
4.性能优化
针对:内存、CPU、耗电、卡顿、渲染、进程存活率等。
- 不要过早的做性能优化,app先求能用再求好用。在需求都还没完成的时候把大量时间花在优化上是本末倒置的;
- 优化要用实际数据说话,借助测试工具进行检测(如:网易的Emmagee、腾讯的GT和APT,科大讯飞的iTest,Google的Battery Historian)
- 程序主要保证二点:1.高效 2.简洁”。
android开发经验的更多相关文章
- 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"
一个关于 imageView 设置 scaleType 的问题. 就在刚才 晚上9 点多的时候,我的一个外包伙伴发一个工程代码我,叫我去看下这样一个"bug",说折腾了很久,图片选 ...
- Android进阶笔记09:Android开发经验部分总结
1. 在Android library中不能使用switch-case语句访问资源ID:在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 2. 不能 ...
- 【Android开发经验】使用Ant批量打包Android应用全然指南
本文章由Socks完毕.博客地址:http://blog.csdn.net/zhaokaiqiang1992 转载请说明. 折腾了一下午.百度了一下午,最终实现了使用Ant对Android应用的批量打 ...
- 【Android开发经验】ViewHolder到底用什么修饰?static?final?static final?
其实一上来我就贴一张图就ok了,因为这几种完全一样,不管用什么修饰,ViewHolder都会初始化当前界面可见item的数量+1次,和convertView的实例化次数是一样的,因此,我么不管使用什么 ...
- Android 开发经验
学习社区 eoe移动开发者社区 (link) 链接:http://www.eoeandroid.com/ 环境配置 Cocos2d-x 3.x 全平台新手开发配置教程 链接:http://www.co ...
- 【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
今天,看到了一篇文章讲LayoutInflater的使用方法.瞬间感觉自己对这个类确实不够了解,于是简单的看了下LayoutInflater类的源码.对这个类有了新的认识. 首先.LayoutInfl ...
- Android开发经验之—intent传递大数据
在Activity或者组件之前传递信息时,一般採用intent绑定bundle的方式传值,但在使用过程中须要注意的是不要用bundle传递大容量数据: 在做项目的过程中,须要将听写界面的听写结果信息传 ...
- 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(一)
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在APP市场上,常常有一些充满新意的应用让我们眼前一亮,比方微信的面对面加好友,支付宝的声波支付等等,都是通 ...
- 【Android开发经验】Android举UI设计经验
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 1.Android眼下的主流设备分辨率为480×800.720×1280.1080×1920,单位是像素.在 ...
- 【Android开发经验】使用反射,得到的类的字段、方法、并实现了简单的调用
本文后推出Android的ICO框架做准备,所以,假设你想要一个最近的一项研究Android的ICO学生框架.你可以稍微看一下. 首先,简介一下Java里面的反射. JAVA反射机制是在执行状态中,对 ...
随机推荐
- hdu Bone Collector
入门级动态规划 #include"iostream" #include"string.h" #include"stdio.h" using ...
- NodeJs - 序列化
https://nodejs.org/dist/latest-v5.x/docs/api/querystring.html 序列化: querystring.stringify({name:'Lee' ...
- HTML&CSS----练习做网页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- java的Arrays工具类实战
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的.静态方法是属于类的,不是属于类的对象.所以可以直接使用类名加方法名进行调用.Arrays作为一个工具类,能很好的操作数组 ...
- CodeBlocks的汉化、主题美化及其调试功能的实现
破事水 最近由于Cfree5经常崩溃+调试语句运行速度比较慢,想尝试一下另一个听说很好用的IDE Code::Blocks. 先上官网的安装包(自带mingw,安装完可以直接用,适用于windows系 ...
- SAE saestorage.class.php文件的封装代码
Source for file saestorage.class.php Documentation is available at saestorage.class.php <?php /** ...
- visual 2008中error PRJ0003 : 生成 cmd.exe 时出错
visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”, 和vs2008 sp1没关系 解决方案:工具—>选项—>项目和解决方案—>VC++目录, ...
- Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹
(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...
- textView截取字符串-医生工作台1期
textfield截取字符串 ios7 会崩溃 解: 之前的写法是这样的 正确的写法: 先判断markedTextRange是否为nil, markedTextRange这个属性是啥意思呢 表 ...
- Programs vs. processes
Computer Systems A Programmer's Perspective Second Edition This is a good place to pause and make su ...