Android 开发之应届狗从掉洞到填坑之路

在开发了几个项目之后我决定写篇文章分享一下一路走来的经验教训。
一、在开发中的话慢慢你会理解(如果觉得专业知识警示不想看可看本人写的二部分一点感悟,颇为精彩!希望给予你收获,嘿嘿!)
1.好代码像好的段子,不需要多余的解释。如果你的代码是不解自明的,那么大多数情况下,它并不需要注释和文档。
在使用任何第三方库之前都要三思,这件事非常严肃,别人不维护了怎么办,突然改别的需求了又咋办,自己没进步不知道原理咋办,是不是觉得自己要亲力亲为呢,如果学习了别人的原理去使用,对自己是一大突破,那天自己也能封装个呢,嘿嘿。

2.除非必须,不要使用数据库。2017再多不过发生的几大事情中,很多都是从删除到跑路,当让前提要自己跑的安全。脱得干净,会丢锅。但是你可以尝试使用realm(第三方数据库),这个真的不错。项目很快就会达到65k方法,真的很快,此时可以求助Multidex。

3.RxJava是AsyncTask的最佳替代,而且它远不止于此,此前一个月一直在学习,用上了保证你爱不释手,嘿嘿!
Retrofit是最好用的网络库,不要自己写Http客户端,可以用Volley或OkHttp。
附上一个我喜欢的链接,讲的还是比较透彻的:http://blog.chengdazhi.com/index.php/140 
4.使用RetroLambda缩减代码,我能想到人生最cool的事,就是把RxJava、Retrofit和RetroLambda绑在一起。

5.EventBus挺好用,但我不会用太多,因为代码会变得很纠结,不过难者不会,难免有大佬喜欢用。

6.通过功能分包,而不是通过层。这样子功能模块会越发的清晰,但是如果有习惯,那请自便。

7.不要在UI线程中执行逻辑代码,不然可能会ANR。作为新手的我遇到过几次,但是后来我学会注意了,希望后人谨慎!

8.使用Lint检查Layout层级可以帮你发现没用的View,兴许可以去掉。

9.使用Gradle以及默认项目结构。

10.把密码与敏感数据放在gradle.properties里。(译者注:或许更好的方式是把这些数据放在local.properties里,然后把这个文件加进.gitignore)

11.使用styles来避免在Layout文件中写重复代码。

12.不要让ViewGroup层级太多。(会过度绘制)

13.监控电量,充电时可以进行更多的数据更新,低电量时停止数据的自动更新。
14.当系统缺少内存(而不是应用缺少内存)时,系统会调用onLowMemory()方法,所以OOM原则上无法避免。这个嘛我遇到的少,但是还是要记住。
15.使用Account Manager来提示登录所需的信息(用户名、邮箱、密码等)。
16.给方法一个明确的命名,要能顾名思义,作为一名新入门选手这个真的很重要,搞不好就不记得这个代码是不是自己写的了,哈哈!

17.启动界面是应用带给用户的第一体验,如果不需要启动界面,那不要无故添加。要不然后果可想而知(有的启动界面太炫酷,导致用户进不去的真是在我身边发生过)。

18.保持colors.xml文件短而简单,只写基本颜色就行。;保持dimens.xml文件简单,之定义基本常量。

19.当要时常修改一个字符串时,使用StringBuffer或StringBuilder(后者不保证线程安全)。

20.为了避免内存泄露,不要在AsyncCallBack中保留View引用!不要让静态对象持有View引用!

21.最好不要在集合框架中存储View,但你也可以使用WeakHashMap。

22.FlatBuffers是一个高效的跨平台的序列化类库,建议使用,尽管本人没用,但是觉得很好用,学习了一点。

23.Serializable实现起来很方便,但性能是真的差。

在开发过程的注意先说这么多,希望对大家有所帮助。希望给你带来一丝丝感悟,嘿嘿!

二.生活,关于一个应届狗,对实习半年的总结

转眼间大学生活走到了尽头。人们需要仪式感,所以无论情不情愿,总要和过去的自己诀别一番。尽管你我都知道,毕业后不会是一个更新的自己,只会是一个更老的自己。

只是当你在午夜检点行藏,追忆过去日夜里,回想年初制定的那些计划,有太多的事情值得仔细思量。
csdn是一个让人着迷的地方,人们用各式各样的方式展示他们的博学、美丽和健康(无意给csdn打广告)。环信论坛也是一个讲道理的地方,在这里一切都可以找到方法和经验。所以你看到这里程序员谈笑风生年入百万,健身狂六块腹肌也只一般,营销有秘籍,美容有秘方,屌丝逆袭太简单。好像美腿美颜都不是天生,世上无难事,只要肯登攀。

这一切都让人产生错觉。于是我们立下许多flag,仿佛自己也能跟他们一样。
你说自己要瘦成一道闪电,要从130减到120。你办了健身卡,加入夜跑团,心心念念就是自己的计步排行。你每天拍一张照片想见证一个奇迹的诞生。有没有瘦有没有瘦,你特意等了两周才站上体重秤,上面写着61kg。哗,你的三观就此崩塌。你不到一个月就坚持不下去了。该吃吃该喝喝,人生贵在适意过,微胖一点又如何?半年后你忽然想起健身卡上还有几千块钱,心想别浪费了,然后发现健身房烟消云散老板已不知去向,原来的门脸换了主人。老板娘一脸粉饼一脸热情,帅哥美容吗,办个卡吧?
你说未来是互联网的天下,要转行当程序员,上追马化腾下追温赵轮。你买了算法导论和21天精通C++,从谭浩强看到 Bjarne Stroustrup。一入编程深似海,你终于在第20天的时候撑不住了。在此期间你的学习目标从C++、java换成了python,在下载盗版Visual Studio的时候中毒丢失了所有的种子。你备受打击,原来教程里都是骗人的。你打开一个新世界说了句“hello world”,世界回了一句“get out SB”。你灰溜溜地卸载VS,重新装上了最爱用的360软件管家。

你说要恶补英语提升职场价值,李阳疯后舍你其谁。你下载了沪江英语和哈利波特原版小说,每天在有道上秀出自己羞涩的发音,得到85分的评分。你在地铁上枕头上马桶上背单词。你追随奶爸的脚步刷着书单,最后变成了奶带逛。终于你的哈利波特永远停在了第一章,词汇永远在5000打转,听力就像罗永浩说的听了3000张英文唱片除了fuck什么也没听到。你搞不定任何一个多音节单词的pronunciation,只有第一页的abandon没齿难忘。

有人曾经说为什么地铁上都是学英语的而不是其他,因为学英语是失败了也不心疼的。我们已习惯一次次的跳票和失败,有些事你我早已心知肚明。我们都是平凡人,在牛人出没的地方有了自己也优秀的错觉。如果一个人是因为看了环信博客上的知识、经验和见解才开始计划,那么十有八九是坚持不下去的。坚持是种稀缺品。我们能坚持的常常只有平庸。那些能够成功的人,往往早就养成了成功的习惯,不会等到知乎和环信论坛的出现。

哈哈,是了。 这不是生活的真谛,却是一个残酷的真相。我们都是平凡人,平凡到一年的生活真的可以用一句话来总结。因为除了年龄,一切都没有改变。

于是平庸的日子一年一年。我们总会在年初的时候立很多的flag,又在年末的时候亲手拔掉,开始一个新的轮回。

然而,这平凡的一年中有多少刻骨铭心的快乐、痛苦、感动和辛酸,只有我们自己知道。人的命运又怎么能跑过历史的进程,除了他又有谁能永恒?也许我们最终也会甘于平凡,但至少我们努力过挣扎过振奋过。哪怕它唯一的意义只是在夜深人静的时候,被自己感动得热泪盈眶。

一首旧作,聊寄衷肠。

白马秋风塞上,杏花春雨江南。九十还续旧因缘,世事浮云过眼。
理想绝逼是病,节操果断换钱。不当大V好多年,听取呵呵一片。

时间: 2024-08-28 11:06:26

Android 开发之应届狗从掉洞到填坑之路的相关文章

一名Android开发者的微信小程序填坑之路(2)

前言 上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天--当然是因为国庆节.说老实话,这十三天里面我都没有碰和小程序有关的东西--毕竟学习小程序的开发也只是起于兴趣,而平时的工作并不会涉及与其相关的东西--但是在这十三天里,我能明显的感受到小程序热正在逐渐的消退,或者说大家正在逐渐以一种较为平和的姿态接受它的存在,其实这是一件好事.期待公测的到来. 接下来我就直接进入正题了,另外,文末我想和大家分享一下我的国庆节. PS:这篇文章是接着上一篇文章 一名And

一名Android开发者的微信小程序填坑之路(1)

前言 首先要声明的是,我是一名 Android 开发者,之前基本没有前端开发经验,甚至连 JS ,HTML 都是为了开发小程序现学的一些皮毛--所以文章中所提到的一些点也许在资深前端开发者看来只是小case,但是站在一个 Android 开发者的角度来看确实是大坑. 前面就不说太多东西了,文章的末尾再谈谈我对小程序的一些看法--这篇文章主要是谈谈在开发小程序的过程中遇到的一些坑. PS:推荐一下我写的一个微信小程序版的Gank客户端:wechat-weapp-gank 正文 1,获取小程序开发工

android中简单便捷使用GreenDao本地数据库及采坑之路

在开发过程中,有时候我们需要使用SQLite数据库去本地存储一些临时文件,之前,我们的做法是通过SQLiteOpenHelper实现创建数据库,以及迭代开发中的数据库数据 内容 字段 变更时处理. 优点 1.通常我们在使用GreenDao的时候,我们只需定义数据模型,GreenDao框架将创建数据对象(实体)和DAO(数据访问对象),能够节省部分代码. 2.不向性能妥协,使用了GreenDao,大多数实体可以以每秒几千个实体的速率进行插入,更新和加载. 3.GreenDao支持加密数据库来保护敏

H5嵌入原生开发小结----兼容安卓与ios的填坑之路

一开始听说开发H5,以为就是做适配现代浏览器的移动网页,心想不用管IE了,欧也.到今天,发现当初too young too simple,兼容IE和兼容安卓与IOS,后者让你更抓狂.接下来数一下踩过的坑.主要分UI展示,键盘,输入框等等.解决bug最苦恼的问题不是没有解决方案,而是你没有找到真正的原因.再就是现象难以重现,每次都要发布代码,然后到手机app中去测试,模拟.这些地方会耗费大量的精力. 一.UI相关 1.安卓4.4以下不支持fixed布局. fixed布局的作用之一就是在手机键盘弹起

开发小程序(填坑之路,遇到一点就更新一点)

1.开发小程序发送请求时,报错不在以下合法列表中: 在开发工具详情中设置: 请参考微信官方文档:关于小程序网络相关API说明 2.如果你需要权限验证(如登录后访问),小程序不像浏览器能帮你自动携带cookie信息,那么你需要自己写在将cookie写入请求hedear中,不然每次请求都通不过权限验证. wx.request({ url: `${API_URL}/${type}`, data: Object.assign({}, params), method: 'POST', header: {

Android开发软件架构思考以及经验总结

前言 架构设计,到底是什么呢?基于这段时间的学习和自己的一些思考,我认为架构是基于产品和技术所达成的一种共识.我不是专业的架构师,也不是经验老道的开发者.本文目的有三,一是整理这段时间的架构学习和思考以及总结这一年的开发经验教训,二是希望能够与各位朋友探讨移动端App的架构设计,三是希望我们每一个应用开发者能够拥有架构的意识.个人的水平有限,文中如果不当之处,还希望批评指正. 知识大纲 一.萌芽 二.初识架构 1.阅读<架构之美>之论架构 2.分析行业内各个APP的架构演进 (1)架构为什么需

RecyclerView的使用(Android开发必备,替换掉ListView)

RecyclerView的使用(Android开发必备,替换掉ListView) 当有人看了你写的代码,说你现在还在使用ListView?是不是感觉快跟不上时代了啊!不错,今天就带给大家一个ListView的最新升级控件RecyclerView,Android 5.0推出的新控件,不过它在support-v7包,可以往下兼容,当你学会了RecyclerView之后,发现了它的强大,你就会替换到ListView和GridView了.    RecyclerView简介:          Recy

这些小工具让你的Android 开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

Android开发在路上:少去踩坑,多走捷径【转】

作者:gzjay,腾讯MIG无线产品部 高级工程师 最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享. 1.目前, Android APP开发完成后,通常需要在哪些机型上进行测试? 2.目前, 开发Android APP时,需要考虑的分辨率有哪些? 这两个问题可以合起来回答的. http://developer.android.com/about/dashboards/index.html 源自Google Play的数据,每月都会进行upd