Randall | 一、从零起航

一、版本控制及项目托管

基本步骤:

  • 注册github账号
  • 安装git环境
  • 创建android项目
  • 生成本地git仓库
  • 共享到github上

1.注册github账号——已有的话可跳过

点击这里打开注册页面

github注册页面

2.安装git环境——已配置的可跳过

点击这里打开git官方网站

git环境下载页面

3.创建android项目——使用Android Studio创建(简称AS)
开始创建项目
选择SDK版本
选择登录页面
完成初始项目创建

4.生成本地仓库——使用命令行的可以跳过
通过AS快速生成仓库
选择类型为git
修改gitignore策略
添加工程到git仓库
提交初次版本
检查更改,提交说明
检查提交历史

在AS中,除了复杂的git操作之外,像常用的clone、push、pull、merge、commit、stash等,还是非常方便的,并且AS将日常操作简化为:update project和commit changes。对于其他项目,推荐使用git小乌龟操作git仓库。

.gitignore文件会使git忽略不相干文件目录的版本控制,如build、.gradle等,能够极大减少github上的仓库大小,从而使得开发保持纯粹。


5.共享到github上
选择分享到github
设置仓库和远程分支名称
推送本地版本到远程仓库
没有远程仓库push权限
登录github账户,添加SSH keys
百度经验之配置sshkey1
百度经验之配置sshkey2
push本地改动
检查是否push成功

二、项目依赖与开发模式

基本框架:

  • Android官方
  • 依赖注入
  • 数据库、网络、图片加载、异步、网页解析
  • 其他相关

1.官方框架
  compile 'com.android.support:design:25.3.1'
  compile 'com.android.support:cardview-v7:25.3.1'

design兼容包用来实现低于5.0版本的material design(材料设计),会为我们带来v7和v4兼容包。
cardview兼容包是非常炫酷的卡片布局,值得引入。

添加依赖库1
添加依赖库2
添加依赖库3

这里有很多开发版/预览版提供试用,如果只是学习使用的工程,可以添加一些进来玩玩;若是开发的商业或开源app,那就要考虑稳定性了。


2.依赖注入框架

最初的依赖注入框架:Dagger
被谷歌接管之后:Dagger2
框架简介:A fast dependency injector for Android and Java.——来自Square主页的惊喜。

依赖注入是什么?简单来说,就是管理项目中,大量实例的生命周期,以及获取实例的方式。

Butter Knife从使用角度来看,就是完美的依赖注入框架。

你无需在Application的onCreate中,编写大量的getInstance方法。如果它们之间存在关联性,那么维护这些方法的调用顺序将会使其他开发者崩溃。而另一个令人绝望的地方在于,一段时间后你很有可能忘记getInstance的类名。依赖注入,将完美解决这些棘手而本不应该存在的问题。


3.数据库及网络框架
  // 数据库框架
  compile 'com.squareup.sqlbrite:sqlbrite:1.1.1'
  // 网络框架
  compile 'com.squareup.retrofit2:retrofit:2.3.0'
  compile 'com.squareup.retrofit2:converter-scalars:2.3.0'
  compile 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
  // 网络请求日志
  compile 'com.squareup.okhttp3:logging-interceptor:3.8.0'
  // 图片加载框架
  compile 'com.squareup.picasso:picasso:2.5.2'
  compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
  // 一个对于构成使用的Java虚拟机观察序列异步和基于事件的程序库
  compile 'io.reactivex:rxandroid:1.2.1'
  compile 'io.reactivex:rxjava:1.3.0'

  // Json序列化工具
  compile 'com.google.code.gson:gson:2.8.0'
  // 网页内容解析器/装饰器
  compile 'org.jsoup:jsoup:1.10.3'

【SqlBrite】是轻量级的数据库框架,搭配Rxjava后,要比其他ORM框架舒服很多。
【Retrofit】和【OkHttp】就不用多说了,火得一塌糊涂。
至于为什么用【Picasso】而不是Glide,一个原因是喜欢Square全家桶,另外一个则因为Picasso比较轻。
【RxJava】和【RxAndroid】对于异步任务来说,简直没有比它更优雅的了。
【Gson】上手简单,使用方便,稳定。
【Jsoup】是一款网页解析神器,很容易就把一个网页拆成无数的零件,然后开发者可以随意拼接为想要的模样。

PS:这里提一点,原本是想用simple-xml来解析网页内容的,这也是一个网页解析神器,使用注解的方式,直接将网页内容转换为对象,方便快捷强大,唯一的缺点是层级分明,导致无法提取出wml协议的文本内容。而在地狱之门游戏中,将有大量的文本内容分散在html元素节点之间,所以只好放弃这款神器,转而自己根据提取到的内容,去生成相应的对象。


4.其他相关
  // 简单的调试日志工具
  compile 'com.github.mrzhqiang:debug-log:1.1'
  // 常用的开发辅助工具
  compile 'com.github.mrzhqiang:helper:1.1'

debug-log用来兼容系统调试日志的简单工具,修复了系统日志功能上的短缺。
helper将包含很多很多,从其他开源项目、第三方开源框架中,收集到的一些静态工厂方法,以及个人开发的一些小工具。

因为它们非常地纯粹——都是静态工厂方法,并且需要不断地更新,所以作为第三方框架来依赖,会比较友好。


三、总结

至此,一个新项目应有的基本要素,都已经具备,下面将通过 Dagger2 建立全局的基本依赖。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,333评论 25 707
  • 诗/落雪 叶打露水枝微颤 向阳春暖百鸟欢 丽人镜前梳妆坐 一笑回眸万物生 流连忘返春江水 丽城景美人亦媚 佳音玉女...
    落雪有晴空阅读 205评论 3 3
  • 今天直接在会议室整理了一个圈,先放松走了几圈,然后开始太极。 第一遍,身体僵硬,打的很慢 第二遍,好很多了虽然仍慢...
    日出东方天刚晓阅读 160评论 0 0
  • 我借住在我小姨家。 端午节。 早上八点左右,姨父起床了,把粽子从冰箱拿出来,没有用煮饭的锅,而是拿了一个至少两个星...
    辣椒的一万种做法阅读 182评论 0 0
  • 历史是这样的: (1)移动手机 1973年4月,世界上第一台移动手机Dyna TAC问世;1994年8月,世界上第...
    OneWing阅读 483评论 0 0