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 建立全局的基本依赖。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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