美文网首页
Randall | 一、从零起航

Randall | 一、从零起航

作者: mrzhqiang | 来源:发表于2017-08-25 01:57 被阅读0次

    一、版本控制及项目托管

    基本步骤:

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

    相关文章

      网友评论

          本文标题:Randall | 一、从零起航

          本文链接:https://www.haomeiwen.com/subject/tpharxtx.html