美文网首页网络android专题
android前辈的心得-知识点-各种依赖库-集锦

android前辈的心得-知识点-各种依赖库-集锦

作者: W的北城 | 来源:发表于2019-08-20 10:36 被阅读0次

    目录:

        1.建议

        2.知识点

        3.Dagger2使用篇

        4.Retrofit+RxJava+OkHttp -封装篇

    建议:

    (1).使用Gradle和它推荐的工程

    (2).密码和敏感数据最好放在gradle.properties中

    (3).不要自己写Http客户端,使用Volley或者OkHttp库

    (4).使用Fragments来呈现ui视图

    (5).使用Activities只是为了来管理Fragments

    (6).Layout布局是xmls代码,需要组织好

    (7).在layout的xmls布局是,使用styles文件来避免写重复的属性

    (8).要使用多个style文件,避免出现单一的大的style文件

    (9).保持colors.xml简短,只是定义调色板

    (10).不做一个深层次的ViewGroup

    (11).只是用WebView的时候避免在客户端做处理,当心内存泄漏

    (12).使用Robolectric单元测试,Robotium做ui测试

    (13).使用Genymotion作为模拟器

    (14).用ProGuard和DexGuard来混淆项目

    android SDK

    Android sdk 放在home目录或者其他app无关的位置,因为在安卓有些包含SDK的IDE的时候,可能火把SDK放在IDE同一目录下,当年你需要升级或者重新安装的时候,会比较麻烦。如果IDE是普通用户下运行,而不是在root下运行,还需要避免吧SDK放到需要studo权限的系统级别目录下。

    Gradle配置

    不要在build.gradle中定义sigingConfigs,因为会出现在版本控制中,重新建立一个不加人版本控制系统的gradle.properties文件

    使用Maven依赖方式替代使用jar包方案如果项目中明确使用jar文件,那么为了避免成为固定版本,下载jar包来更新很繁琐,可以定义成Maven形式。然后会自动升级到指定的最新版本


    Activities and Fragments

    实现ui界面的时候,Fragments应该作为默认选择。可以重复使用Fragements用户接口来组合成你的应用,强烈推荐使用Fragments而不是activity来呈现ui界面:

    (1)使用多窗格布局解决方案:Fragments的引入主要将手机应用内引申到平板电脑,所以在平板上面可能有A,B两个窗格,但是在手机应用上A.B可能分别充满整个屏幕。所以在起初就用fragments的话,会方便以后的屏幕适配。

    (2)屏幕间数据通信:从一个Activity发送复杂数据(例如Java对象)到另外一个Activity,Android的API并没有提供合适的方法。不过使用Fragment,你可以使用 一个activity实例作为这个activity子fragments的通信通道。即使这样比Activity与Activity间的通信好,你也想考虑使用Event Bus架构,使用如 Otto 或者 greenrobot EventBus作为更简洁的实现。 如果你希望避免添加另外一个类库,RxJava同样可以实现一个Event Bus。

    (3)Fragments 一般通用的不只有UI:你可以有一个没有界面的fragment作为Activity提供后台工作。 进一步你可以使用这个特性来创建一个fragment 包含改变其它fragment的逻辑 而不是把这个逻辑放在activity中。

    (4)ActionBar可以使用内部fragment来管理:你可以选择使用一个没有UI界面的fragment来专门管理ActionBar,或者你可以选择使用在每个Fragment中 添加它自己的action 来作为父Activity的ActionBar.

    但是也不能滥用嵌套的fragments,因为可能会引起 matryoshka bugs。在架构一个app框架的时候,应该有一个顶级的activity来包含绝大部分业务相关的fragment。也可以有一些辅助的activity,辅助activity通信可以很简单限制在这两种方法 Intent.setData() 或 Intent.setAction()或类似的方法。

    资源文件 Resources

    命名 :遵循前缀表面类型的习惯,例如type_foor_bar.xml

    组织布局文件:

        每一个属性一行,缩进四个空格

        android:id作为第一个属性

        android:layout_ 属性在上边

        style 属性在底部

    应该使用styles几乎每个项目都需要适当的使用style文件,因为对于一个视图来说有一个重复的外观是很常见的。

    可以将一个大的style文件分割成多个文件  可以有多个styles.xml文件,Android SDK支持其他文件,style这个文件名称并没有起作用,起作用的在文件里的<style>标签。

    colors.xml是一个调色板  在你的colors.xml文件中应该只是映射颜色的名称的一个RGBA值,没有其它的。避免重复定义RGBA值,这使如果需要改变基本色变的很复杂。同时,这些定义是更环境关联起来的,如button或者comment,应该放到一个按钮风格中,而不是在color.xml。

    避免深层次的视图结构 有时候为了摆放一个视图,可能尝试添加另外一个LinearLayout。

    各种dpi的范围

    Android中的命名规范: 1.包名:使用反域名,全部使用小写字母;2.类:名词,采用大驼峰命名(又称帕斯卡命名法),尽量避免缩写,除非是公认的。如HTML,URL;3.接口:大驼峰命名;4.方法和变量:小驼峰命名法(驼峰命名)5.常量: 全部大写,下划线命名;6.资源文件:全部小写,采用下划线命名法。7.资源布局文件(xml文件)全部小写,采用下划线命名法;8.资源id:小驼峰;9.layout中的id,view缩写_模块名称_view逻辑名称

    开发模式(mvc和mvp):

    对比MVC和MVP模式来说:mvc模式容易造成Activity或者Fragment里面的代码越来越臃肿。

    MVC模式:View:布局的xml文件Controller:Activity、Fragment、Dialog等;Model:相关的业务操作处理数据(如对数据库的操作、对网络等的操作都应该在Model层里)

    MVP模式:View:Activity、Fragment、Dialog、Adapter等,该层不包含任何业务逻辑;Presenter:中介,View 与 Model 不发生联系,都通过 Presenter 传递;Model:相关的业务操作处理数据(如对数据库的操作、对网络等的操作都应该在Model层里)

    MVP开发模式,便于后期的维护。

    在使用第三方依赖库的时候,需要学会封装,抽象的依赖第三方框架。以便于实现低耦合。

    知识点:

        JAVA反射机制:JAVA反射机制在运行状态中对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及调用对象方法的功能称为java语言的反射机制。

    Dagger2

    (1)基于JAVA注解来实现的在完全编译阶段完成依赖注入的开源库,主要用于模块姐解耦,提高代码的健壮性和可维护性。

    (2)实现有三种方式  :1、构造注入;2、接口注入;3、注解注入(推荐使用,因为前面两种都需要写大量代码,这一种只需要 “@Inject”即可)

    (3)目的:最主要 为了解耦,达到高内聚,低耦合的目的,保证代码的健壮性,灵活性和可维护性。

    (4)主要用法:@Inject, @Module, @Provides, @Component, @Qulifier, @Scope, @Singleten

    Retrofit+RxJava+OkHttp -封装篇

    1.创建一个统一的生成接口实例的管理类

    2.创建接口,通过第一步获取实例

    3.创建一个业务Loader,如xxxLoader,获取并处理相关业务

    4.Activity/Fragment中调用

    5.统一处理结果和错误

    6.添加公共参数

    (Demo:https://github.com/pinguo-zhouwei/RetrofitRxJavaDemo


    相关文章

      网友评论

        本文标题:android前辈的心得-知识点-各种依赖库-集锦

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