问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android开发需要注意什么

发布网友 发布时间:2022-05-12 06:07

我来回答

2个回答

热心网友 时间:2022-06-24 22:33

1、不要排斥新技术和新工具。
Android Studio 1.0 之后的版本,基本已经稳定到可以支持正常的工作开发的程度了。单纯就书写效率而言,Android Studio 带来的好处绝对大于它和Gradle的学习成本。JetBrains的IDE,用过都说好。
还有就是适当的提升targetSdkVersion到新版本。
2、代码设计方面的问题,大部分都能在Android系统源码里找到解决方案。
当你想设计一个新模块,或者实现一个新ui组件的时候,应该采用哪些设计模式、应该以哪种形式给外界提供接口之类的问题,大部分都可以参考Android系统的源码,找到实现方式。Google为安卓程序员提供了一座现成的宝库。
3、理解Android和Java内存管理方式,至少要理解垃圾回收和Java的引用。
就好比学OC就要先理解黄金法则一样,而java的内存管理,其实比OC要好理解多了。
这可能会帮助你大大减少程序异步操作产生的空指针崩溃。也会帮助你理解为什么滥用单例模式会导致内存的臃肿。还会帮助你养成不用“+”去连接超大字符串的好习惯。
4、ContentProvider并不是只有在跨进程共享数据的才有用,把数据库表映射到一个独立的uri是Google鼓励的实现方式。
从设计上讲,用uri(统一资源标识符)去描述数据,肯定比sql语句要理想。
从效果上讲,用CursorLoader读取数据是让iOS程序员都羡慕不已的事情,作为android程序员,何苦不用呢。
5、理解Activity任务栈。
非Activity的Context对象如果直接启动Activity会报错,这只是一个表面现象,真正起作用的其实是Activity任务栈机制。
理解Activity任务栈机制以及Activity的各种启动方式,会帮助解决大部分页面关系错乱问题,以及应用互相掉起、任务栏进入应用、后台弹窗引起的各种问题。
6、对于一些奇葩的第三方ROM,调用其非主流api的时候,可以使用反射。
在适配一些第三方ROM的的时候,调用一些在开发环境中没有,但在运行环境中有的方法时,可以使用反射。比方说,华为双卡手机可能会提供获取第二块SIM卡信息的api,如果直接调用,在开发环境可能无法通过正常编译,用反射就没问题。这属于不得已而用反射的一种情况。
7、SQLite的锁,是数据库级别的锁,也就是说同一个数据库的写操作无法并发执行。
所以,在数据库设计的时候,如果表太多,尽量将没有关联的表拆到多个数据库文件中。
8、Bitmap的内存占用问题。
这是一个困扰2.X时代android程序员的问题。
2.X时代Bitmap对象虽然存储在堆内存中,但是用了一个byte数组存储其像素信息。通过计数器来记录该像素信息被引用的个数。有人认为这个byte数组在native堆中,但事实上它也在堆中。
只有在使用者调用recycle()后,Bitmap对象才会释放像素信息,才会在失去引用后,被垃圾回收机制销毁。再加上DVM的heap size有严格的阀值,所以在使用大量图片资源的时候,及其容易发生OOM。
解决办法一般都是,用一个哈希表存储Bitmap对象的软引用,作为内存缓存,并在适当时机掉用其recycle()。
3.0以上版本Bitmap对象可以通过垃圾回收机制完全销毁,理论上不用再调用recycle()。

热心网友 时间:2022-06-24 23:51

很多组件的setText()方法时,如果设置的值为数字,不能直接将数字传入,需要将数字转换为String才能得到 正确的结果。

在调用setColor时,如果传入的是一个resid需要调用getResource().getColor(int resId),获取正确的颜色值,才能得到正确的结果。

在View被添加到父组件时,调用View的getHeight方法和getWidth获取的结果都未0,只有当组件被画出来以后   ,调用这两个方法才能获得正确的结果。

在代码中设置View的Width和Height属性,不能通过setWidth或setHeight方法进行设置,需要调用getLayoutParams().进行设置


当此组件有事件触发的时候,比如在点击或触摸,长按等事件触发时调用该组件的这两个方法,就可以获取正确的结果。

在这个组件的onDraw方法里面调用这两个方法,也可以获取正确的结果。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 有没有关于老虎妈子的文章? 东北民间故事有什么特色? 生辰八字取名??? 求起个广告店名 西门子冰箱压缩机突然声音变大然后就不工作了,是压缩机坏了吗? 西门子三门冰箱声音很大,搬动了一下,声音小了,但第二天声音又变回大声,怎回事呢? 带土字寓意好的字 vivo手机x30pro前置摄像头突然变成了深咖啡色怎么回事? Vmores冻干乳铁蛋白的冻干技术原理是什么? html怎么导入Java Web项目中出现乱码 单头棘轮梅花扳手型号S32是什么意思 一边梅花一边开口的工具叫什么名称? 单头梅花扳手价格如何 单头梅花扳手有何用途 属龙人出生月的运势 988年出生属龙2015年月份运程 中国移动积分商城里M值能兑换地下城的点卡吗? 10086的积分在手机上能兑换么?(就是动感地带的M值) 发什么到10086可以用M值兑换10元话费 怎么使用手机发短信用M值兑换话费 m值兑换话费怎么换 求三个东北的民间故事,是很小的时候姥姥讲给我的 民间传奇故事集txt全集下载 谁有东北民间故事论文8000字的 有关写胡三太爷的书吗? 《关东过客》txt全集下载 征求民间灵异故事 注意是民间的 和民间灵异风水传说 只要跟鬼怪沾边 审核后给予采纳 重点东北民间鬼故事 民间故事《东北保家仙》 李欣钰、麻烦专家分析一下这个名字好吗? 李欣钰这个名字应得多少分 求日本一部关于打手心的电视剧 李欣钰名字怎么样 帮忙取名 姓李辈分成 女 2012.12.30 13:35出生 帮忙取名字 最好依五行八字 谢谢 不要太土的 可不按辈分 我大女叫李欣钰,小女叫什么好?麻烦想一下,谢谢! 帮我想个名字,分不在乎,我分可是很多的喔 姓李、86年12月11日、子时、八笔画和十笔画的有什么好名字、女 如图,光源凸透镜成像的光路图怎么画? 起个名字,女孩,叫李欣*,帮忙想想第三个字 麻烦大家帮孩子起个名字吧!急~~~要高分的哦!谢谢!! 跪求这款衣服淘宝哪有卖,店铺名或者链接 全国叫李欣钰的有多少