给朋友的Android实用轮子

Android 架构组件,节省你重复造轮子时间 前言 Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作Android Jetpack,它包含的组件如下图所示: 老的 support 包被整合进了 Jetpack,例如上图 Foundation 模块的 AppCompat,整合进去之后,包名做了一下修改,全部以androidx开头。Android Studio ... 阅读详情

一些比较好用的轮子

语言

相对于Java,kotlin现在也相对成熟了,掌握kotlin对目前来说还是很重要的,毕竟更现代化的语言,而且开发速度也会有所提升。

混合开发

React Native

Flutter

官方组件

Android官方JetPack

constraintLayout,挺好的ViewGroup

Android KTX ,kotlin官方扩展包

Android Lifecycles生命周期管理

LiveData,生命周期限制下的动态数据更新

Navigation, Fragment之前的跳转,替代原有的replace和add方法,限制推崇单Activity,多Fragment模式, 所以之前比较流行的路由ARouter其实并不好用,但旧项目依然可以通过ARouter来改造。

Room和Paging是数据库的操作,目前需求速度和更多操作的话,还是选择GreenDao比较好。

ViewModel, 类似于前端React中的state概念,在生命周期允许的条件下保存数据,这个框架是很核心的,结合了DI,和Android生命周期管理,本身的设计结构利用了Fragment的可空白性和周期包含性,很好的解决了Android的各种内存泄漏和数据同步问题。可以参考QQ音乐的ViewModel分析,讲的还算比较深入。

WorkManager,做后台闹钟等还算很好用的,本身没什么黑科技,在于兼容性很强。至于保活的黑科技,目前新版本基本上是没有实际效果了,Android每一代更新对后台的限制都是大动作。包括Q版本的后台唤起界面限制。全家桶保活也不大可能了,能通知到位是最好的结果。

其他的Jetpack组件应用于特殊条件

网络组件

OKHTTP, 已经是官方组件,但还需要引入,旧版本系统没有

Retrofit, Restful API方式,动态代理,声明式接口方法,很现代化的方式,而且一旦使用,很难瞧得上旧的方式来进行HTTP请求。

RxKotlin, RxJava, 很适合数据流的方式,但是Rx学习曲线比较陡峭,先要学习函数式(声明式)编程的思想才能更好的学习,对比学习的SQL语言,Rx就是这样的声明式语言框架,将来在kotlin中也会发现很多单元测试方法都是声明式的。
Rx也很重要,不单单是在网络请求,类似的框架在前端应用非常广泛,我们所说的响应式最强的我觉得还是Rx。

高级组件

koin,Kotlin依赖注入,kotlin版本的Guice, Dragger2虽然性能好,但毕竟实现来讲很复杂,学习曲线比较高,而且要求系统级别的操作。koin是我接触过得,最好用的依赖注入

val dataModule = module {

    single { LoggerImpl() as Logger }

    single { HttpLog(get()) }

    single { CookiesManager(get()) }

    single { UrlConfigImpl() as UrlConfig }

    single { OkhttpWrapper(get(), get(), get()) }

    single { RetrofitWrapper(get(), get()) }

    single { NetworkHandler(get()) }

    single { Prefs(get()) }

    single { Downloader(get()) }

    single { AccountRepositoryImpl(get(), get()) as AccountRepository }

    single { API(get(), AccountApi::class.java).instance }

    single { API(get(), PollApi::class.java).instance }
    single { PollRepositoryImpl(get(), get()) as PollRepository }

    single { API(get(), ApkApi::class.java).instance }
    single { ApkRepositoryImpl(get(), get()) as ApkRepository }

}

写Demo肯定是用不到,和ViewModel结合,写大一点的应用还是有一定的必要。

单元测试

robolectric,空API提供系统级别模拟测试

Kluent, 面向Kotlin的Fluent断言库

"hello" shouldNotEqual "world"

mockito, 学习成本比较高的模拟接口框架

质量

leakCanary,内存泄漏问题检测

其他:

kotlin协程,暂时不要在项目中用吧,不太好用,跟Rx相比,不好用

blankj:utilcode, Android工具库,比较全,但Anko:Common基本的类似于Toast和alert 扩展方法更好用。

EventBus, 很久的事件总线,基本上每个项目都有这个框架。学习成本较低,也很好用。

MPAndroidChart, Android图表库。

RxPermission M以上的权限申请

GrowingIO 企业级打点

jkeyboardpanelswitch 键盘弹出处理

pinyin4j-2.5.0.jar 拼音搜索

TBS 腾讯浏览器服务,主要针对低版本

ical4j RRule 生成工具

jsoup Java爬虫,HTML解析工具

qmui 腾讯的UI库,写demo很好用

calendarview 很容易定制的日历组件

不太重要

其他的一些各种视图上的,比如各种下拉菜单什么的,基本上没有学习成本,GitHub上也是一大堆。

写在最后

框架的掌握在外企和大企业,一般不被看重,更重的是基础能力,比如操作系统,算法,数据结构三大老大难的问题,面试造火箭,工作拧螺丝,后台几百万并发,前端各种秒开。无论去大公司还是小公司,基础知识总是不能被抛弃,虽然用不上,却也会潜移默化的影响编程习惯和思考方式。了解一些框架是避免踩已经很明确的坑,重复造轮子是没有意义的,在小公司意味着一个人的独立开发能力和上手时间成本。在工作中学习和掌握新框架是具有风险的,尤其是一些比较复杂的框架Rx等,可能会导致线上的事故。所以,尽可能的去了解一些新的框架,新的趋势,也是对自己的一个提升。

不过,话说回来,真的没什么新意,也没必要每一个都要捧着源码来解析这个,分析那个,不至于。我们把库比作轮子,你想想,造个轮子和造汽车相比,那个更难。业务复杂性不输于框架,只是术业有专攻。

轮子哥安卓开发框架,非常好用 轮子哥安卓开发框架,一个非常优秀的开源框架。 各项界面,对话框,全面的内存优化、布局优化、代码优化、瘦身优化。 项目中常见的代码进行了封装,或是封装到基类中、或是封装到工具类中、或者封装到框架中,不追求过度封装,根据实际场景和代码维护性考虑,尽量保证同一个功能的代码在项目中不重复。 对小屏手机、全面屏手机、带虚拟按键手机进行了适配和优化,确保每一个界面细节都能处理到位、每一个功能细节都能符合大众的需求、乃至每一行代码都能贴合 Android 程序员的审美观。 优秀的代码设计:AndroidProject 对 startActivityForResult 的设计进行了改良,使得可以直接在方法上传入监听对象,这样我们就不需要重写 onActivityResult 方法来拿到回调,另外原生的 startActivityForResult 还需要传 requestCode 参数,而 AndroidProject 会自动帮你生成这个 requestCode 码,并在 onActivityResult 进行判断,如果满足条件,那么就会回调外层传入的监听对象。然而这只是冰山一 立即下载

相关推荐

Android-拆轮子-学习Depth唯美的动画效果

拆轮子-学习Depth唯美的动画效果

AndroidWheel - 一个用于创建可定制的Android轮子控件

AndroidWheel - 一个用于创建可定制的Android轮子控件 去发现同类优质开源项目:https://gitcode.com/ 项目简介 是一个开源项目,提供了一个易于使用的API,帮助开发者在Android应用程序中创建各种类型的轮子(比如日期选择器、滑块等)。这个库旨在提高开发效率,减少自定义视图的工作量,并确保高质量的性能。 功能与应用 AndroidWheel可以帮助您实现以下...

gitblog_00073的博客 801

使用Android造了个滚轮控件轮子示例

关于 Android 实现 iOS 上的滚轮选择效果的控件,到 github 上一搜一大堆,之所以还要造这个轮子,目的是为了更好的学习自定义控件,这个控件是几个月前写的了,经过一段时间的完善,现在开源,顺便写这一篇简单的介绍文章。 效果如下,录屏软件看起来可能有点卡顿,具体可以下载源码运行: 自定义控件无非是 measure,draw,layout 三个过程,如果要支持手势动作,那么就再加上 touch 。 measure 测量过程比较简单,以文本大小所需要的尺寸,再加上 padding。 @Override protected void onMeasure(int widthMe

记录 Android 常用轮子

Android 轮子

qq_30974087的博客 784

YOLOv8+BiFPN双向特征金字塔:多尺度目标检测精度提升28%的实战教程

双向特征金字塔网络(BiFPN)是一种强化多尺度特征融合支持“自顶向下+自底向上”的双向特征流动,同时保留不同尺度的细节信息;引入加权融合机制,自动学习不同特征的重要性权重;裁剪冗余节点,在轻量化的同时提升融合效率。

m0_64661770的博客 492

【NVIDIA-B200 GPU固件升级】NVIDIA Blackwell B200 GPU 固件更新全指南

B200 GPU 固件更新并非 “执行一条命令即可” 的简单操作,而是涉及 “版本兼容性校验、BMC 环境准备、UEFI 引导、Redfish 协议交互” 的系统性工程。从文档翻译与技术解析来看,NVIDIA 的更新流程设计围绕 “安全” 与 “稳定” 两大核心 —— 无论是 0.9 版本的 “跳板限制”,还是 UEFI Shell 的引导要求,本质都是为了避免因操作不当导致硬件损坏。对于数据中心运维人员,建议在更新前做好三项准备:① 确认 GPU 当前固件版本(通过查询),规划升级路径;

jundao1997的专栏 741

带你领略Android 架构组件的魅力

Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作  Android Jetpack,它包含的组件如下图所示: 老的 support 包被整合进了 Jetpack,例如上图 Foundation 模块的 AppCompat,整合进去之后,包名做了一下修改,全部以 androidx 开头。...

Android 开发架构 591

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?

微信电脑版本不会自动下载图片吗?——没有找到解决方法。——只会默认下载doc等文件,图片不行,需要自己另存为——有什么办法解决吗?此外,用户还可以选择将接收到的图片、视频和文件保存到指定的文件夹中。‌用户可以在微信设置中调整这一设置。

qq_15963745的博客 5085

android 安卓 轮子大全 例子库 下载安卓源码

安卓源码下载大全 轮子库 这里有安卓的源码大全,内核几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: …更多好东西 网盘下载地址 链接:https://pan.baidu.com/s/1c_Mypuxb2iNX0...

当富网络 582

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py) 题目描述 学校组织活动,将学生排成一个矩形方阵 请在矩形方阵中找到最大的位置相连的男生数量 这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的 注:学生个数不会超过10000

KJ.JK 2492

大唐杯5G考前冲刺篇(回顾全文重点必看)

大唐杯习题复习指南

nimo观察者 1万+

安卓微信登录 android 安卓 轮子大全 例子库 下载安卓源码(五)

这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址 链接:https...

当富网络 307

槽型光电开关传感器原理图设计,已量产(光电传感器)

在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收器之间的光路实现电平切换,电路简单且抗干扰性优于漫反射式光耦。今天分享一个实际项目中落地的槽型光电开关检测电路,从器件选型到逻辑设计都做了简化适配,适合小批量原型或低成本产品的需求。

不脱发的程序猿 715

安卓头像层叠效果 android 安卓 轮子大全例库下载安卓源码(二)

这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址 链接:https...

当富网络 515

Android实现TextToSpeech控件实现语音播报--朗读文字 (附完整源码)

Android实现TextToSpeech控件实现语音播报--朗读文字 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1116

Google Cameraserver 看门狗CameraServiceWatchdog超时crash原理分析

本文分析了Android CameraServiceWatchdog机制的工作原理。该看门狗用于监控相机服务关键操作(如close、flush)的超时情况,通过定时器线程检测阻塞问题。文章详细讲解了Watchdog的初始化流程、使能方式、内部定时器机制(默认周期100ms,650次循环触发超时),并提供了configureStreams阶段的客制化实现方案。当检测到超时,Watchdog会触发abort生成tombstone日志,便于调试分析。

1129

FragmentActivity滑动 卡死 android 安卓 轮子大全 例子库 下载安卓源码(六)

这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址 链接:https...

当富网络 237

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android开发常用轮子

一、快速开发框架 XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展 2.MVPArms 一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架(包括Mvp、 Dagger2、RxJava、RxAndroid、Rxlifec...

Androidyuexia的博客 929

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android-轮子收藏

1.ImageView 可以根据图片内容变阴影颜色,更加细腻的阴影效果 https://github.com/yingLanNull/ShadowImageView?tdsourcetag=s_pctim_aiomsg 2.PagerBottomTabStripAndroid 页面底部和侧边的导航栏 https://github.com/tyzlmjj/PagerBottomTa......

tiansos123的博客 288

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

安卓轮子之Retrofit的使用

表单请求 1. 普通表单 @FormUrlEncoded:表示请求体是一个 Form 表单 Content-Type:application/x-www-form-urlencoded 采用 @Field 注解: @FormUrlEncoded @POST("login/login") Call<ResponseBody> login(@Field("mail") Str...

哈罗德Android笔记 557

安卓Spinner 设置颜色 安卓 轮子大全 例子库 下载安卓源码(附下载链接)

这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: #### 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址 链接:h...

当富网络 345

安卓分享功能(造轮子)

介绍: 项目地址:https://github.com/woaigmz/modularization/tree/master/sdk-share 组件化项目的sharelib,欢迎大家fork star 甚至 follow 感谢:) 造个轮子吧,用自己的心里踏实: 项目集成微信、QQ、微博。很烦,并不想用三方的一键分享。不如自己写个 sdk 吧,以后逻辑都要自己控制 :) 代码设...

weixin_37389474的博客 984

android gradle下载慢 android 安卓 轮子大全 例子库 下载安卓源码(四)

good> 这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址...

当富网络 199

Android spinner 设置背景 安卓 轮子大全 例子库 下载安卓源码(一)

good> 这里有安卓的源码大全,内含几千个demo例子,几乎覆盖所有的市面上UI设计功能点的需求,保存一份,就是求职工作多一份报障。 android实例源码,很好很强大… 丰富的页面展示效果类别: 轮子例子大全: 作品列表 作品列表 作品列表 …更多好东西 #### 网盘下载地址...

当富网络 392

android常用轮子(持续更新)

一、快速开发框架 XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展 2.MVPArms 一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架(包括Mvp、 Dagger2、RxJava、RxAndr...

张晓辉的博客 825

Android轮子

https://github.com/opendigg/awesome-github-android-ui

baidu_33575737的博客 351
上一篇: Android开发者心酸史
下一篇: 项目接盘侠复盘总结
PirateBrook
博客等级 码龄11年 90粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值