
Android-Extensions全景指南10个Kotlin模块如何帮你快速搭建生产级Android应用【免费下载链接】Android-ExtensionsAn Android library with modules to quickly bootstrap an Android application.项目地址: https://gitcode.com/gh_mirrors/an/Android-ExtensionsAndroid-Extensions 是一个开源的 Android 扩展库项目通过10 个 Kotlin 模块core、navigation、recyclerview、viewpager2、material 等帮你快速搭建生产级 Android 应用。无论你是刚入门的 Android 新手还是想给现有项目补装备的开发者这份指南都能让你在几行 Gradle 依赖内上手。 项目概览一个仓库十件趁手工具与其说它是一套框架不如说它是一个工具箱每个模块各司其职按需引入互不拖累。模块当前版本一句话说明core1.3.2Kotlin 委托、Context/Drawable 扩展、流式 SpannableString APInavigation1.2.1单栈/多栈 Fragment 导航器支持挂起suspendAPIrecyclerview1.2.0拖拽、滑动、无限滚动、Diff 工具、多列表同步滚动viewpager21.0.0基于 DiffUtil 的 FragmentListAdapter高效翻页view1.2.0基于 SpringAnimation 的动画工具与 View 委托material1.0.4可展开浮动按钮FAB、Snackbar 联动等 Material 组件增强communications1.0.0蓝牙低功耗BLE扫描与 NSD 网络服务发现savedstate1.0.1生命周期组件的状态保存SavedState 委托实现constraintlayout1.0.0-rc01ConstraintLayout/MotionLayout 指示器动画工具test1.0.0-rc01Espresso 测试辅助IdlingResource 等 此外还有一个functions模块1.0.0提供 Java 8 函数式接口的 Android 移植版和若干 Guava 风格工具方法。版本信息以仓库根目录的 libraryVersion.properties 为准。 三步上手从克隆到引入依赖第一步获取源码git clone https://gitcode.com/gh_mirrors/an/Android-Extensions第二步配置 Maven 仓库在build.gradle的allprojects.repositories中添加mavenCentral()各模块制品均已发布到 Maven Central。第三步按需引入模块// 示例引入核心模块 implementation com.tunjid.androidx:core:1.3.2 implementation com.tunjid.androidx:recyclerview:1.2.0 implementation com.tunjid.androidx:navigation:1.2.1只需要用到哪个模块就引入哪个——这是生产级项目的关键依赖越精包体积与风险越小。 10 大模块逐个拆解1️⃣ core扩展基础消灭样板代码core 模块是全库的地基主打Kotlin 委托by bundleDelegate(false)—— 像读写属性一样读写 Bundle 中的值by fragmentArgsString()—— Fragment 参数委托进程被杀后依然存活by viewLifecycle(AFragmentBinding::bind)—— 生命周期感知的 ViewBinding 委托视图销毁自动清理还有HardServiceConnection泛型化绑定服务告别回调地狱和流式 SpannableString API。详见 core/README.md。2️⃣ navigation多栈导航告别 FragmentManager 异步地狱新手用 Fragment 最头疼的就是回退栈管理。navigation 模块的 StackNavigator 强制每个入栈 Fragment 都带确定性 tag带来三大好处相同 Fragment 请求时自动复用栈中实例不会重复堆叠连续展示同一实例的请求会被直接忽略防抖通过TransactionModifier把共享元素转场逻辑与点击逻辑解耦而MultiStackNavigator让底部导航栏拥有多个独立回退栈并支持suspend挂起函数顺序执行导航操作。demo 应用的 MainActivity.kt 仅用十几行代码就搭好了四 Tab 多栈导航值得逐行研读。3️⃣ recyclerview列表能力全家桶这是日常开发中使用率最高的模块工具解决的问题Diffable免写 DiffUtil.Callback声明式计算差异ComposedAdapter/listAdapterOf把 Adapter 回调拆成可组合的函数BindingViewHolder一行扩展方法从 ViewBinding 直接创建 ViewHolderEndlessScroller三行代码搞定无限滚动加载RecyclerViewMultiScroller多个 RecyclerView 同步滚动表格场景神器SwipeDragTouchHelper拖拽排序 滑动删除4️⃣ viewpager2Fragment 翻页也能 DiffFragmentListAdapter 让 ViewPager2 管理 Fragment 页时也能用 DiffUtil 精准更新定义一个FragmentTab数据类作为页签描述然后一句submitList(newTabs)完成增量刷新避免整页重建。5️⃣ view弹簧动画驱动 UI围绕 Jetpack DynamicAnimation 的SpringAnimation构建ViewHiderToolbar/FAB 跟随手势滑出屏幕的快速返回模式InsetFlags声明式消费 WindowInsets刘海屏适配利器View.popOver把任意 View 弹出在锚点视图上方6️⃣ materialMaterial 组件的精装修FabExtensionAnimatorMaterialButton ⇄ FAB 的弹簧变形动画FabSpeedDial给任意锚点视图加装速度拨号Speed Dial菜单BottomTransientBarBehaviorSnackbar 弹出时自动联动抬升上方内容7️⃣ communicationsBLE 与局域网设备发现做 IoT 开发这个模块直接可用BleScannerScanFilterCompat低版本系统也能用新版蓝牙扫描 API 的写法NsdHelper封装 NsdManager几行代码完成局域网服务注册与发现demo 应用中 BleScanFragment.kt 就是一个完整的 BLE 扫描界面范例。8️⃣ savedstate给任意生命周期组件存状态LifecycleSavedStateContainer把 Jetpack 的 SavedStateRegistry 委托给任何实现了 LifecycleOwner 的自定义组件——自己封装的超级控件从此也能扛住进程重建。9️⃣ constraintlayout动态 ViewPager 指示器ViewPagerIndicatorAnimator 为 ConstraintLayout 内的分页指示点提供流畅的位移/缩放动画。⚠️ 该模块目前标注为停止维护新项目中请优先关注 MotionLayout 官方方案。 test让 UI 测试不再手抖Espresso 测试经常因为页面还没跳转就报红。FragmentVisibleIdlingResource/FragmentGoneIdlingResource让测试自动等待 Fragment 可见或移除后再断言告别 sleep()。 眼见为实demo 应用app 模块仓库自带一个名为app的演示应用按 4 个 Tab 组织导航Navigation、列表RecyclerView、通信Communications、杂项Misc。其中好狗狗榜单Doggo 列表是 RecyclerView 模块的完整实战随机生成 9 只狗狗数据支持列表/详情转场、拖拽、排序等交互数据模型见 Doggo.kt。下面这张图就是列表中的一位成员——跑起 demo 应用每个模块的开箱效果一目了然这是理解各模块能力最快的方式。 新手选型速查表你的需求引入模块想减少 Bundle/Intent/ViewBinding 样板代码core多 Tab 底部导航 独立回退栈navigation列表要做拖拽、无限加载、Diff 更新recyclerviewFragment 分页且数据频繁变化viewpager2FAB 变形、Snackbar 联动动画material view蓝牙 / 局域网设备发现communications自定义控件需要保存状态savedstate想写出稳定的 UI 测试test✅ 写在最后Android-Extensions 的哲学很朴素不重造轮子只把轮子打磨得更顺手。每个模块都对应 Android 开发中真实存在的痛点——从 Bundle 取值到多栈导航从列表 Diff 到 BLE 扫描——并且全部按需引入、互相独立。建议路线先 clone 仓库跑通 demo 应用 → 对照上表挑 1~2 个模块引入自己的项目 → 阅读对应模块的 README如 recyclerview/README.md深入细节。祝开发愉快✨【免费下载链接】Android-ExtensionsAn Android library with modules to quickly bootstrap an Android application.项目地址: https://gitcode.com/gh_mirrors/an/Android-Extensions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考