首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android】Android开发架构规范【转】

架构规范 这是我整个系列文章从零开始搭建android框架系列的重点,所以这里放在最后面。 架构方式 是选择MVP,MVC,MVVM ,Flux还是clean 架构?,+dagger2?...对开源库的选取,一般都需要选择比较稳定的版本,还有作者在维护的项目,比如这里在github搜索image,出现的安卓中的图片加载库。...无论是在mvp,mvc,还是mvvm中,提供一个统一的数据入口,都可以让代码变得更加易于维护。...引入Dagger2 减少模块之间的耦合性 Dagger2 是一个依赖注入框架,使用代码自动生成创建依赖关系需要的代码。减少很多模板化的代码,更易于测试,降低耦合,创建可复用可互换的模块。...需要使用BuildConfig.DEBUG标记对Log进行封装,只在调试时输出重要信息,正式版不输出 TODO more 参考文章 Android进阶之路——安卓编程规范 Google官方MVP+Dagger2

1.2K90

Android开发架构规范前言命名规范编程规范代码提交规范架构规范参考文章

---- 架构规范 这是我整个系列文章从零开始搭建android框架系列的重点,所以这里放在最后面。 架构方式 是选择MVP,MVC,MVVM ,Flux还是clean 架构? ,+dagger2?...对开源库的选取,一般都需要选择比较稳定的版本,还有作者在维护的项目 ,比如这里在github搜索image,出现的安卓中的图片加载库。...无论是在mvp,mvc,还是mvvm中,提供一个统一的数据入口,都可以让代码变得更加易于维护。...引入Dagger2 减少模块之间的耦合性 Dagger2 是一个依赖注入框架,使用代码自动生成创建依赖关系需要的代码。减少很多模板化的代码,更易于测试,降低耦合,创建可复用可互换的模块。...需要使用BuildConfig.DEBUG标记对Log进行封装,只在调试时输出重要信息,正式版不输出 TODO more 参考文章 Android进阶之路——安卓编程规范 Google官方MVP+Dagger2

1.4K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    学习笔记 | Android Studio安卓开发入门经验总结 干货

    故在此总结整理安卓开发中比较常见的一些问题,技巧和指南。 1.开发环境 Android Studio是谷歌基于IntelliJ IDEA社区版开发的,面向安卓开发的免费集成开发环境。...其方便快捷的开发调试和可视化UI编辑可以令安卓开发事半功倍。...3.项目结构 3.1 开发模式 安卓开发常见的开发模式有MVC,MVP,MVVM等(详见本站文章 “学习笔记 | Android开发常用的几种模式”),其中MVC非常容易上手,结构清晰易懂,为了简化开发...3.3.5 回收型列表视图RecyclerView的使用 RecyclerView是基于viewholder的回收理念在ListView上的一个升级版,功能强大,当然在不需要进行回收的场景就当然不要用了...和ListView类似,要将数据适配到视图上进行展示需要使用适配器Adapter,不同的是RecyclerView的BaseAdapter已经将viewholder模式封装好了,而目前RecyclerView

    2.5K60

    kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

    Jason老师的辛勤付出,动脑学院在B站上也有投稿koltin基础的视频,通过视频可以快速学习和上手kotlin 今天来综合使用各种组件,搭建最新MVVM项目框架,利用Paging3实现列表功能,Paging3...:通过构造函数,给ViewModel注入实例 1.Application注入HiltAndroidApp @HiltAndroidApp class APP : Application() 别忘了在Manifest...中配置 2.Activity中开始查找注入对象 使用AndroidEntryPoint注解来表示,Hilt开始查找注入对象 @AndroidEntryPoint class MainActivity :...添加扩展函数 为了后续Paging的使用,为RecyclerView添加设置Adapter和liveData的扩展函数: fun RecyclerView.ViewHolder, T : Any...:在列表头部添加数据时触发,Refresh触发时也会触发 第一步就需要判断LoadType的状态,如果是Refresh,那么数据库中没有数据,就要从网络获取数据,Refresh状态下load函数执行完毕后会自动再次调用

    3.6K31

    从零开始搭建MVVM架构(1)——DataBinding

    在真正接触并使用MVVM架构的时候,整个人都不好了。因为个人觉得,MVVM相对于MVC、MVP学习难度比较大,设计的知识点不是一点半点。所以想慢慢记录下自己的成长。如有错误希望指正。...从零开始搭建MVVM架构系列文章(持续更新): Android从零开始搭建MVVM架构(1)————DataBinding Android从零开始搭建MVVM架构(2)————ViewModel...这里提下 lifecycles:就是处理UI界面的生命周期,在26版本以后的Support库中,AppCompatActivity和SupportActivity中都实现了LifecycleOwner,...二、DataBinding在Fragment和RecyclerView里的使用 在Fragment的使用和Activity里的使用一样。获取根目录的方式如下。...有点像Dagger2 public class DataBindingHelper { //用@BindingAdapter标注,有点类似自定义属性,后面是属性名,方法体类似得到属性值后去做的事情

    1.7K10

    安卓天气预报app(二)——适配器、每小时数据展示

    ✅简易的安卓天气app(一)——解析Json数据、数据类封装 简易的安卓天气app(二)——适配器、每小时数据展示 ✅简易的安卓天气app(三)——城市管理、数据库操作 ✅简易的安卓天气app(四)—...展示一天中每个小时的天气,实现效果(若是想从当前时刻开始,获取小时温度,可自行实现,源码见页尾) 涉及内容 获取网络数据 数据实体类的封装 异步获取网络数据 Gson工具类解析Json 界面设计RecyclerView...里新增private RecyclerView rlvHourWeather;并findByView注册拿到之后就可以添加适配器了,想要哪个小页面传到这个RecyclerView中,, 每小时天气小界面...,ps|小窍门(观察"[]"和"{}"你就会发现规律) 我们要得到每小时的数据,就要找一个对象,里面封装的是每小时的天气,就是说data数据0下标当天天气里还有一个对象,包了每个小时共24小时的详细数据...LinearLayoutManager.HORIZONTAL, false); rlvHourWeather.setLayoutManager(layoutManager); 到此处就能完美展示每小时数据了,步骤在目录中

    1.1K80

    一次使用Kotlin实现酷炫多选操作的尝试

    那时我明白了必须千方百计把Vitaly的多选概念设计实现出来;所以我几乎立即就开始了编写这个控件的工作。现在让我们来看看这个安卓的多选动画是如何诞生的。 ?...一个具有两个页面的ViewPager,每个页面包含一个RecyclerView。未被选择的item在左边的列表。选中的item在右边的列表。...这里是我在实现这个库的过程中,Kotlin的这些特性给我带来了方便: 1.扩展函数 Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,而不用修改原来的类。 就拿安卓的View来说。...这些方法非常普遍,而且不同编程语言都表现出相同的行为,包括Java 8 (streams)。不幸的是streams在安卓开发中还不能使用。   ...有了它你就可以在两个adapter中使用相同的viewholder。 3.接下来,为未选中的列表和选中列表创建两个adapter。

    1.2K20

    Android学习--RecyclerView

    前面一篇总结了ListView,在这篇我们总结一些这个RecyclerView,我们就从最基本的开始,安卓团队是将RecyclerView定义在support库当中的,因此想要使用RecyclerView...      它的基本的创建和添加到XML文件中我们就不在提了,这个比较简单,先看看要是想实现和前面我们写的ListView相同的效果,下面是最重要的适配器里面的代码,注释就是理解的思路,我们选择通篇复制...abstract static class AdapterViewHolder> 这句是我们看到的官方的关于Adapter的代码 // 从这句代码中你可以捕捉到的信息就是它的参数...// 为了点击事件定义的View View fruitView; // 这个ViewHolder类型的初始化以及参数和前面我们写的Adapter的道理相同,多看官方源码理解...这个View的参数就是RecyclerView子项的最外层的布局,我们可以在它上面就点击事件 fruitView = view; // 这里就是获取两个控件

    1K100

    【翻译】Kotlin 1.1 新版本同样适合安卓开发者

    更重要的是,今天我就要把这些都展示给您,让您知道在开发安卓程序过程中是多么的爽快。 类型别名:让你的事件监听更具可读性 当然,类型别名是有很多用处的。...众所周知, RecyclerView 和 ListView 一样没有标准的处理单项视图点击事件的方式,所以我们必须动手自己写。...这里有几个例子: 第一个是你很可能希望看到的 Jetbrains 官方提供的库: kotlinx-coroutines-android ,这个库实现了协程在安卓中的使用。...这也是开源的魅力所在! 其他一些对于安卓开发者来说很酷的事情 在这个版本中还有很多其他的改进,但是我想重点提出几个关于针对安卓开发的功能。...这边文章发布在类目:安卓,访客文章和新闻标签下,订阅他的永久地址。

    1.1K60

    金三银四要来了?不要慌,Android高级面试题刷一刷

    安卓的app加固如何做? 安卓的混淆原理是什么? 谈谈你对安卓签名的理解 为什么WebView加载会慢呢? 如何优化自定义View FC(Force Close)什么时候会出现?...Android Apk V1 签名原理 说下安卓虚拟机和java虚拟机的原理和不同点?...(JVM、Davilk、ART三者的原理和区别) JVM 和Dalvik虚拟机的区别 Android2个虚拟机的区别(一个5.0之前,一个5.0之后) ART和Davlik中垃圾回收的区别?...安卓采用自动垃圾回收机制,请说下安卓内存管理的原理? 开放性问题:如何设计垃圾回收算法? Android中App是如何沙箱化的,为何要这么做? 一个图片在app中调用R.id后是如何找到的?...依赖注入框架:ButterKnife实现原理 依赖全局管理框架:Dagger2实现原理 数据库框架:GreenDao实现原理 数据库框架对比?

    1.4K30

    《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

    干货订制: 可以筛选自己喜欢干货的类别,有全部、IOS、App、前端、休息视频和拓展资源。 大安卓: 显示安卓的全部资讯。支持下拉刷新方便查看最新的资源。...玩安卓: 显示玩安卓轮播图及最新内容。 段子: 显示内涵段子和糗事百科的段子内容。 书籍: 检索豆瓣心理学类的书籍并展示。...2、高仿网易云音乐歌单详情页。 3、NavigationView搭配DrawerLayout的具体使用。 4、MvvM-DataBing的项目应用。...这给了用户一个很好的反馈,就是如下的效果: ? toolbar_click.gif 上图是在android 5.1系统下的效果图。...对于2:不同按钮点击的水波纹效果 这里不是使用ripple属性了,而是使用系统自带的点击水波纹选择器,给要产生点击效果的控件设置: android:background="?

    1.4K10

    Android知识笔记:记录 2 个 “容易误解” 的Android 知识点

    (event); maybeUpdatePointerIcon(event); maybeUpdateTooltip(event); ... } DecorView 如果你熟悉安卓的...答: onAttachedToWindow和onDetachedFromWindow在RecyclerView中还适用吗?...在RecyclerView中,Item的这两个方法分别会在【首次出现】和【完全滑出屏幕】(即在屏幕中完全不可见)时回调(在Adapter中也可以重写同名方法,用来监听ViewHolder的出现和消失)。...至于说适不适用,还是看具体需求,比如列表中的视频播放,在onDetachedFromWindow回调时暂停/停止还是合理的。 但是像题目说的倒计时和属性动画效果,就不合适了,为什么呢?...我们先粗略地温习一下RecyclerView的回收机制: RecyclerView在布局(自然滑动其实也是反复布局子View)时,会回收一些符合条件的ViewHolder,它会根据ViewHolder的状态来决定临时存放在哪个地方

    95020

    RecycleView从0到0.1 | 技术创作特训营第一期

    一、文章快速总结RecycleView是安卓的列表,可以灵活控制每一项的数据,布局,动画。Adaper是整体适配器,逻辑放在这里。Holder是每一项的内容,把控件初始化放在这里。...说白了就是ui的列表,可以很灵活的控制列表中每一项的数据,布局,动画。三、RecycleView的优点 1、支持局部刷新。 2、可以自定义item增删时的动画。...,其中VH是我们adapter类中创建的一个继承于RecyclerView.ViewHolder的静态内部类。...MyHolder : 这是RecyclerView.ViewHolder的实现类,用于初始化item布局中的子控件。需要注意的是,在这个类的构造方法中需要传递item布局的View给父类 。...我们可以在RecyclerView的Adapter中自定义一个接口,并创建一个供其他类设置监听的方法。

    44411

    Kotlin入门(23)适配器的进阶表达

    前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。...所以ViewHolder便应运而生,它在列表项首次初始化时,就将其视图对象保存起来,后面再次加载该视图时,即可直接从持有者处获得先前的视图对象,从而减少了系统开销,提高了系统的运行效率。...为方便理解循环适配器的Kotlin编码,下面以微信的公众号消息列表为例,给出对应的消息列表Kotlin代码: //ViewHolder在构造时初始化布局中的控件对象 class RecyclerLinearAdapter...这下不管是在Activity代码,还是在适配器代码中,均可将控件名称拿来直接调用了。...,所以需要修改模块的build.gradle,在文件末尾添加下面几行配置,表示允许引用安卓插件库: androidExtensions {     experimental = true } 即使修改后的适配器代码用了新插件

    1.8K41

    MVVM架构之自动增删改的极简RecycleView的实现

    ,让许多开发者抛弃了以往的ListView,那么RecycleView在MVVM架构下又该怎么实现呢?...2.在MVVM下构造极简的RecycleView 我们上面已经把我们接下来要使用的工具类介绍完了,以上的工具类之后基本不需要变化代码,所以在去除工具类之后我们的自动增删改的RecycleView将会只剩业务代码...,我就试过ViewModel中不使用Context,最后发现Activity和ViewModel中多了许多奇怪的代码,这个我会在之后的MVVM架构中深入讲解。...- 3.在RecycleView中使用了我在工具类BindingAdapters中定义的items和itemView这两个字段来为RecycleView设置初始化变量。...- 2.可以看见我在ViewModel的构造函数中初始化了ItemViewArg.ItemViewSelector和ObservableList。

    2K72
    领券