美文网首页
Android 开发最佳实践

Android 开发最佳实践

作者: 黄嵘才 | 来源:发表于2017-11-10 10:23 被阅读20次

    Android 开发最佳实践
    持续更新

    1摘要
    选择一个好用 IDE Andriod Studio

    关于包的结构
    我建议具体业务相关的包结构是将它们置入在一个包内。而不是在整个应用包的根下

    因为我们的业务是不断的增加。就种增加也应当增相应的包名。这样的话包结构的变化就是会明显的变化
    不利于稳定。

    越是公用的东西则应该放置在明显的地方。如果工具类。

    还有一些其他公用的管理类。这些东西可以放置在更高层级的类包下

    这种做法使得其他小伙伴可以一眼看到,并且使用它们。
    而与你协同开发的小伙伴可能根本不关心你的功能(业务)。
    但是包结构的变化使得小伙伴分心。或是误入到其他。引起冲突等
    关于依赖关系,尽量做到单向依赖
    这个也从包的层次表现出来,
    越是靠近根目录的文件,功能,相当于洋葱的内层,他是越是公用的,核心的。需要被依赖的。
    越是远离根目录的文件,功能,相当于洋葱的外层,他就越是私用的,他依赖于核心的

    关于包的结构
    module:业务模块
    utils:工具类
    widget(视图控件——含自定义view,弹窗,浮窗,通知条。
    service:后台服务()
    data:数据
    common:常用的管理功能
    base:不以业务相关的基本类
    log:日志的打印
    config:配置
    entity:实体类
    module:业务模块是放置一个个独立的模块。
    network:网络
    image:图片
    location:地理位置
    locale:国际化(含多国语言的配置管理)
    permission:权限
    manager:

    data :

    创建线程池管理类,统一管理线程的创建和销毁。减少系统不必要的开销。控制来内存管理

    接口化
    定义内层的输入,输出接口,是内层自己的职责。(内层通常是最接近数据的,但又不能耦后外层,只是定义输入输出接口,这样方便对接所有关心数据的人)
    是不是过度复杂了?
    当你习惯了就简单了

    我们希望数据流可以从外层流向内层,反之亦然。但是依赖规则不允许。

    Log 日志的打印要尽量还原真实场景,不要处理发生的时数据。不需要美化。他当时发生的数据是什么就是什么。
    美化后的数据会隐盖有用的信息。可能会使得调查问题发生的原因出现偏差。

    在团队协作时,怎么能让代码的单向依赖原则不被破坏,即内层的包,不使用外层的包。
    1限制类,方法,参数的访问限制,
    2使用依赖原则。将代码分划成为模块后,外层的模块依赖引入内层的模块,不允许内层模块引入外层的模块。
    3更不要跨层访问

    少写注释,多起一些有意义的名称。有明确的方法名称,类名,属性名等。

    公用的静态方法放置在UTIL包下
    如使web显示页面的,请使用WebView下的Html5Activity
    如果使用自定义,或是你要自己定义一个view.请将他们放置到Widget包里
    C。是我们的常量类
    Config是配置
    service是服务的
    entity是实体类。(实体类不要作涉业务的逻辑,不要依赖平台, 保持他的纯java特性)
    module功能模块
    data数据。
    base是基本父类。(作好的,我们以后可以作一个开发框架)

    工具类理应能够抽像化,公用化。也理应不涉及具体业务细节。
    如果工具类只提供给某个业务使用,那么他的命名上需要下一些工夫,表达出它的使用范
    或是的包可以范围应该被控制在包内可以访问,避免外部误用了。

    内层定义更抽象的部分,外层定义更具体的部分。
    尽可能的作单向依赖,即是外圈使用内圈的类,代码。反之内圈不使用外圈的类,代码。
    如查你发现依赖倒置,内层依赖外层的类,代码,尝试把他移动到内圈。
    如查你发现跨层依赖,或是新增一个中间件在内层进行处理。不直接依赖使用。
    内层的包不要使用外层的包
    *定义输入输出接口是内层的职责。

    例如 Http协议定义的Content-Length
    如果我们也有类似的字符,也作相同的命名的话会与之有冲突。不能正常区分,
    这就里需要个可以区分的命名规范。使用小驼峰命名

    关于Android布局文件(layout)定义规范要求

    关于layout 的命名规范
    使用小写字符,字符之间隔使用下横线_
    Activity使用的布局文件加上前缀activity_
    Fragment使用的布局件加上前缀fragment_
    自定义控制件使用的布局加前缀widget_
    公用的布局件加上前缀layout_
    Adapter使用的布局件加上前缀item_


    代码组织方面。Package Diagram对一些大型的项目特别有用。顺便说一句,良好的代码组织,对软件的可维护性至关重要,请认真的规划你的包结构。下文将简单介绍Package Diagram,主要分两块,什么是Package,以及Package之间的关系。

    相关文章

      网友评论

          本文标题:Android 开发最佳实践

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