Android开发中要避开这些“坑”,不看后悔!
Android开发中有哪些“坑”需要注意?如何使android 开发进程更加顺利?Android开发大神们这些技巧都是你需要的,收藏起来!
Android Studio 1.0 之后的版本,基本已经稳定到可以支持正常的工作开发的程度了。单纯就书写效率而言,Android Studio 带来的好处绝对大于它和Gradle的学习成本。JetBrains的IDE,用过都说好。
还有就是适当的提升targetSdkVersion到新版本。
当你想设计一个新模块,或者实现一个新ui组件的时候,应该采用哪些设计模式、应该以哪种形式给外界提供接口之类的问题,大部分都可以参考Android系统的源码,找到实现方式。Google为安卓程序员提供了一座现成的宝库。
就好比学OC就要先理解黄金法则一样,而java的内存管理,其实比OC要好理解多了。
这可能会帮助你大大减少程序异步操作产生的空指针崩溃。也会帮助你理解为什么滥用单例模式会导致内存的臃肿。还会帮助你养成不用“+”去连接超大字符串的好习惯。
从设计上讲,用uri(统一资源标识符)去描述数据,肯定比sql语句要理想。
从效果上讲,用CursorLoader读取数据是让iOS程序员都羡慕不已的事情,作为android程序员,何苦不用呢。
无论你开发过程进行的多么顺利,当你雄心勃勃将产品上线后,发现很多问题没有被测试出来,用户使用后,走的走、喷的喷,那么最终还是一场空,你也不得不将产品回炉,那既然之前所有的努力都做了,眼看自己的产品就要在市场中引爆热潮,但就因为质量管理的松懈,让一切付出都被这一环节放流,又是何苦呢?
那么这个环节解决方法也很简单,如果说自测费时费力,效果也不太如意,那么开发应该着重投入开发环节,测试环节就交给第三方,目前国内外优秀的第三方测试很多,就包括TestFairy、Google Play本地应用测试和TestBird等,都能满足测试需求,而像现在,合作已经成为行业大的趋势,固步自封永远不能有大的突破,何不各取所需,各得所利,去做一个双赢的事呢?
非Activity的Context对象如果直接启动Activity会报错,这只是一个表面现象,真正起作用的其实是Activity任务栈机制。
理解Activity任务栈机制以及Activity的各种启动方式,会帮助解决大部分页面关系错乱问题,以及应用互相掉起、任务栏进入应用、后台弹窗引起的各种问题。
在适配一些第三方ROM的的时候,调用一些在开发环境中没有,但在运行环境中有的方法时,可以使用反射。比方说,华为双卡手机可能会提供获取第二块SIM卡信息的api,如果直接调用,在开发环境可能无法通过正常编译,用反射就没问题。这属于不得已而用反射的一种情况。
所以,在数据库设计的时候,如果表太多,尽量将没有关联的表拆到多个数据库文件中。
这是一个困扰2.X时代android程序员的问题。
2.X时代Bitmap对象虽然存储在堆内存中,但是用了一个byte数组存储其像素信息。通过计数器来记录该像素信息被引用的个数。有人认为这个byte数组在native堆中,但事实上它也在堆中。
只有在使用者调用recycle()后,Bitmap对象才会释放像素信息,才会在失去引用后,被垃圾回收机制销毁。再加上DVM的heap size有严格的阀值,所以在使用大量图片资源的时候,及其容易发生OOM。
解决办法一般都是,用一个哈希表存储Bitmap对象的软引用,作为内存缓存,并在适当时机掉用其recycle()。 3.0以上版本Bitmap对象可以通过垃圾回收机制完全销毁,理论上不用再调用recycle()。
<End>
【福利时间】学安卓开发如何拿高薪?0基础学员如何逆袭过万高薪?如何用安卓敲开BAT名企大门?移动互联网发展新趋势有哪些?从事安卓开发,前景和“钱”景如何?……微信留言达妹,你想知道的都在这!
PS:4月份Android培训,28日正式开班,现在报名还有机会抢座噢!
再PS:《报名方式》微信回复姓名+联系方式+所在地区,即可参与报名!
我们是一群热爱IT的年轻人,如果你也爱IT、爱移动端开发,欢迎加入我们,让我们共同为梦想发声。Android开发QQ:3264778080
微信关注公众号回复字母查看文章
回复A ► 学习Android薪资及开发技巧
回复B ► 安卓程序猿圈劲爆资讯回复C ► 程序员升职记回复D ► 2016 移动互联薪资行情回复E ► 为什么Android开发最抢手
选达内=4个月=高薪就业
长按二维码即可识别关注↓↓↓
内容来源知乎,如涉及版权问题,请与我们联系,及时删除处理!文章如需转载请注明来源!