分享我学习Androd开发过程中写的小项目

Android学习

在公司iOS APP上线后,Android 项目也要提上日程,因为只招一个安卓开发,同时还希望安卓APP也尽快上线,所以我又学起了Android开发。以协助安卓工程师开发。从五月初到现在,APP终于上线。我也学到了很多Android开发的技术,现在我把我学习过程中开发的小项目分享出来。学习Android开发的小项目,这是Github地址,如果你感觉对你学习Android有帮助的话,请给个Star

刚开始时我们都是用Java开发Android,对于写了好几年Swift的我完全不能忍受Java的语法,没有元组(可以通过第三方实现),没有高阶函数,没有扩展方法,不像Swift,接口(Interface)所有方法都要实现的,没有可选实现的。没有自定义运算符,句末要加分号等很多我在iOS开发过程中常用的语言特性都没有。直到后来Google宣布Kotlin为Android开发的一级语言。我就去随便了解下Kotlin的语法,发现KotlinSwift的语法实在是太像啦。两者相似度应该有80%以上吧,请参考Swift和Kotlin语法比较。所以那还等什么?和同事协商后,确认可以在同一个项目里面可以同时使用Kotlin和Java开发,那么我果断换成Kotlin开发,Kotlin确实比Java简洁多了,不再需要butterknife框架,不需要写各种事件类,各种View也可直接从XML里面直接取出,再加上高阶函数和扩展方法,仿佛又回到了iOS开发APP的感觉。其开发体验和用Java开发完全不可同日而语。所以我在自己学习Android开发写的小项目也全是用Kotlin开发的。这里我就不再详细介绍Kotlin了,下面直接给出这些小项目吧,

6个小项目

这6个小项目从上下到依次是天气,小说,美图,五笔查询,花瓣和2048 AI版。
下面一个一个说起

Weather

天气APP

Weather是学习Android最经典的Android学习入门书《第一行代码》的最终实战,这个例子覆盖的知识点非常全面,有网络请求,Json转换成Model,抽屉布局,DataSupport数据库的使用还有Service服务,作为入门的实战APP实在是再适合不过了。书上是用Java写的,我在这里全部使用了Kotlin来实现。代码更加精简些。

Novel 小说阅读

搜索小说

我有很多同事都是小说狂人,但是貌似很多小说APP都有广告(我不看小说不清楚),于是让帮忙写个小说APP,他用都用iPhone,于是我写了个iOS版本的小说阅读APP iOS小说阅读器,然后我再想试试写一个Android版本的,于是就有了这个小项目,

小说书签

BaseQuickAdapter真的很强大,解决了很多RecyclerView的实际需求,比较下拉刷新和加载更多等。书签用DataSupport保存,这个小项目没有使用到接口,是解析HTML实现的。使用了Jsoup来解析HTML,非常好用。另外在开发过程了还碰到了GBK问题,需要用到字符串bytes。问题不大。总之整个项目比较简单,很容易看懂。

美图

美图
美图
美图

无意中发现个网站,里面的图片质量还算不错,用来当壁纸比较合适。还可以用分辨率筛选。于是下载了他们官方的APP,但是官方APP有广告,而且好像只能看手机壁纸,不能看电脑的。这两点让我非常不爽。于是我就想自己写一个APP,无广告,可以随意收藏和下载高清壁纸。感觉很不错

开发的技术难点并不多,使用和小说阅读器一样的技术。图片显示用了Fresco,图片下载用了Glide

五笔查询

2017-08-28-09_13_25.gif

笔者是一个五笔使用者,虽然用了很久五笔了,但还是有很多字不会打,所以我一般在我手机上安装了五笔反查这个APP,本来作为简单的查询APP,应该十分简洁的,但是里面的广告非常让我不爽,而且非常容易点到。体验也做得比较次。比如历史查询功能就做得很一般。所以我干脆自己写一个。

这个小项目没有特别的技术难点,唯一的难点度不在于APP,而是查询网站令人蛋疼的编码,全部采用GBK编码,而且对请求和请求体有一些特殊要求。请求时需要加上这些参数,查询的文字需要用UrlEncode进行GBK编码,然后再和key拼起来。探索这结东西花了些时间。

花瓣

花瓣
花瓣
花瓣
花瓣

花瓣APP也算了个中型的APP了,我是按照Github的花瓣 开源项目来写的,主是要学习里面的架构写法。实现了收集,登录,喜欢,搜索等功能,原作者说全部采用目前最新的和最热门技术。所以还是有一定有学习价值的。你可以把我写的这个看成是Kotlin的实现版本。但是里面关于Fragment的实现机制不一样,我用了BaseQuickAdapter,所以会比较简单些。

技术方面用了[RxJava/RxAndroid]实现异步响应,简化了很多异步回调的代码。网络方面使用了Retrofit,搭配RxJava很实用,处理数据转化成Model一步到位。其他有兴趣的可以参考代码自己实现一次,就能明白里面的架构和技术了。

2048 AI版

AI最后合成2048

2048是一款具有魔力的游戏,很容易上瘾。一玩就停不下来。但是我水平很菜,从来没有合出来2048。既然我合不出来,就让AI来帮忙吧。于是我参考了2048的AI实现资料,目前网络上最主流的是算法是MixMax算法,请参考文章 2048 AI 程序算法分析,里面详细地分析了这个算法,并且给出了js的实现。于是我也想在APP上实现这个算法,首先我要找到2048在安卓上在实现。我找到了这个Android版2048游戏视频教程源码,这个APP写得非常好,还有作弊和撤销功能。我就用这个APP的源码,并把它用Kotlin重新实现了一遍。然后再添加AI功能。AI的源代码我参考了2048 AI的实现。发现里面的2048实现机制和安卓机制很像,在这个基础上加上AI代码应该不难。事实上确实如此,很快我就把AI代码移植过去并成功运行。经过简单的调试后再测试了很多次,合出2048豪无压力,只是.....我不明白为何一但AI合出2048后突然就智障了,后面的每一步都像自杀一样,豪无章法。很快就挂了。目前工作还比较忙,有时间我再看看为何会这样。

技术方面最主要就是2048的AI算法以及在Android上使用Kotlin的实现2048。这又是比较大的一块,我将专门写一篇文章来说明这个AI算法和实现代码。

到目前为止,我已经开发过iOS项目,Android项目,小型Windows App项目 参考Windows APP时钟和Web项目(参考上一篇文章的Vue和Node实现的完整Blog项目),微信公众号和小程序也有了解过,后端的话用过ASP.Net和Node.js。对目前最主流和开发平台的开发技术都有一定的了解。如果读者想进入这个行业但又不知道选择哪个平台来入门,又或者读者已经熟悉了一个平台,想再选择学习另一个平台的技术,但是不知道选哪个好,那么可以联系我。我会帮助读者结合自己的兴趣和已有知识再加上目前各平台的行情选择一个合适的平台技术学下去。

最后再给出地址学习Android开发的小项目,�麻烦Star啦.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容