随笔分类 -  Android 框架式编程

摘要:在 Android 开发过程中,有些功能是通用的,或者是多个业务方都需要使用的。为了统一功能逻辑及避免重复开发,因此将该功能开发成一个 SDK 是相当有必要的。 那么SDK呈现的方式,都有那些呢? 答:.so、.jar、*.aar、module。 其中,.so是C或C++语言的内容打包成的库,由于本 阅读全文
posted @ 2021-08-27 15:56 灰色飘零 阅读(3661) 评论(0) 推荐(0) 编辑
摘要:做Android SDK开发的时候,一般我们会将初始化的方法封装为,然后让调用SDK的开发者在Application的onCreate方法中进行初始化。但是目前一些主流的SDK框架,并没有提供相关的方法进行初始化,但是我们在使用的时候也能正常使用,通过挖掘其源码,可以看出来他们一般使用的Conten 阅读全文
posted @ 2021-04-25 16:27 灰色飘零 阅读(2938) 评论(0) 推荐(2) 编辑
摘要:一、复用内存块 复用内存块只能在3.0以后使用。2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上。复用内存块,不需要在重新给这个bitmap申请一块新的内存,避免了一次内存的分配和回收,从而改善了运行效率。 在4.4之前,只能重用相同大小的bitmap的内存 阅读全文
posted @ 2021-03-14 12:10 灰色飘零 阅读(3039) 评论(0) 推荐(0) 编辑
摘要:一、JavaPoet 介绍 JavaPoet是Square推出的开源Java代码生成框架,提供Java Api生成.java源文件。这个框架功能非常有用,我们可以很方便的使用它根据注解、数据库模式、协议格式等来对应生成代码。通过这种自动化生成代码的方式,可以让我们用更加简洁优雅的方式要替代繁琐冗杂的 阅读全文
posted @ 2020-12-02 16:03 灰色飘零 阅读(1009) 评论(0) 推荐(0) 编辑
摘要:在《Android框架式编程之EventBus》 和 《Android 开发框架 EventBus 原理解析》 中,明确了如何使用EventBus作为事件总线,简化Android各个组件的通信复杂度,并了解了其实现原理。但是EventBus只限于同一个进程中,如果想要在多个进程之间也能像EventB 阅读全文
posted @ 2020-11-27 17:32 灰色飘零 阅读(1247) 评论(0) 推荐(0) 编辑
摘要:目前移动端应用市场已经是百花齐放,很多独角兽公司都是通过App创业发展起来的,现在App类型更加丰富,功能越来越完善,基本上涵盖了各个行业的每个角落。为了开发出更加有竞争力的App,不仅需要功能上有创新,内容也需要更加多元化,这样就出现了相对巨大的工程。这些工程代码不停添加,如果没有一个好的架构,那 阅读全文
posted @ 2019-11-04 13:50 灰色飘零 阅读(966) 评论(0) 推荐(0) 编辑
摘要:一、Retrofit 简介 Retrofit 官网地址: https://github.com/square/retrofit Retrofit(即Retrofit,目前最新版本为2.6.0版本),是目前非常流行的网络请求框架,底层是基于okHttp实现的。准确来说Retrofit是对okHttp的 阅读全文
posted @ 2019-07-09 21:57 灰色飘零 阅读(1783) 评论(0) 推荐(0) 编辑
摘要:一、ViewModel介绍 ViewModel类是被设计用来以可感知生命周期的方式存储和管理 UI 相关数据。ViewModel中数据会一直存活即使 Activity Configuration发生变化。 ViewModel可以解决以下痛点。 1. 数据持久化 在屏幕旋转的时候会经历 Activit 阅读全文
posted @ 2019-06-27 15:03 灰色飘零 阅读(4020) 评论(0) 推荐(0) 编辑
摘要:一、LiveData 介绍 LiveData是 Google 推荐的 Android 架构组件之一,是一个基于观察者模式的数据容器,但与一般的被观察者不同的是,它是有生命周期感知功能,解决了Android开发者需要去手动处理生命周期的痛点。 它具备如下特点: ① 数据可以被观察者订阅。 ② 能够感知 阅读全文
posted @ 2019-06-27 11:16 灰色飘零 阅读(1587) 评论(0) 推荐(1) 编辑
摘要:Lifecycle官方文档地址:https://developer.android.com/topic/libraries/architecture/lifecycle。 一、为什么要使用Lifecycle? Activity 和 Fragment 是有声明周期的,开发时我们的很多操作需要写在声明周 阅读全文
posted @ 2019-06-17 11:23 灰色飘零 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:EasyPermission库是一个谷歌官方提供的简化基本的系统权限逻辑的库,可用于在Android M或者更高版本上。 官方项目地址:https://github.com/googlesamples/easypermissions 一、EasyPermission配置依赖 在需要使用此库的modu 阅读全文
posted @ 2019-06-04 21:56 灰色飘零 阅读(4008) 评论(0) 推荐(0) 编辑
摘要:Room是Google官方出品的ORM(Object-relational mapping) 框架。当前我们也知道当前还有很多的ORM框架,例如GreenDao、OrmLite、Litepal等。目前并没有深入了解这些框架,没办法比较各个框架的优缺点,但是相对而言,Room比较官方出品,且能够更好的 阅读全文
posted @ 2019-06-03 16:09 灰色飘零 阅读(4147) 评论(0) 推荐(0) 编辑
摘要:一、EventBus 简介 EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus。 它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。 1. EventBus 阅读全文
posted @ 2019-05-15 11:30 灰色飘零 阅读(609) 评论(0) 推荐(0) 编辑
摘要:RxJava是一个很好的开源库,将链式编程和异步很好的结合在一起。在介绍RxJava之前我们先介绍一下观察者模式,这样我们能更好的学习和理解RxJava。 简单介绍一下,A和B两个,A是被观察者,B是观察者,B对A进行观察,B并不是需要时刻盯着A,而是A如果发生了变化,会主动通知B,B会对应做一些变 阅读全文
posted @ 2019-04-09 18:42 灰色飘零 阅读(593) 评论(0) 推荐(0) 编辑
摘要:BufferKnife作为框架式编程的重要组成部分,能够简化findViewById和setOnClickListener,简化资源注入,通过编译时注解来动态实现依赖注入. BufferKnife能够极大的精简View层面的代码量,其配置方式如下: compile 'com.jakewharton: 阅读全文
posted @ 2017-05-24 17:27 灰色飘零 阅读(2040) 评论(0) 推荐(2) 编辑
摘要:MVP是Google官方发布的Android开发相关的架构知识。本文要讲解的是一种最基本的MVP的实现方式,它使用手动的依赖注入来提供具有本地和远程数据源的存储库。异步任务处理回调。 基本的MVP示例项目地址:https://github.com/googlesamples/android-arch 阅读全文
posted @ 2017-01-12 11:19 灰色飘零 阅读(1151) 评论(1) 推荐(3) 编辑