本文收集了笔者在日常工作中发现的众多宝藏工具和项目,可以帮助大家开发Android应用,供大家参考。1.AinD:AndroidinDocker(Anbox)通过在Docker中嵌套Anbox容器,AinD在Docker中启动Android应用。与类似的基于VM(虚拟机)的项目不同,AinD不需要支持嵌套虚拟化即可在IaaS实例上运行。它的目的是:防止信息窃取(通过云端)并使iOS和Windows平板电脑与Android2兼容。BoosterBooster是一个非常有趣的工具,它易于使用、轻量级、功能强大且可扩展,它是一个移动质量优化工具包用于应用程序设计。其主要目标是解决随着应用程序复杂性增加而出现的性能、稳定性和包大小等质量问题。Booster集成了性能检测、多线程优化、资源索引内联、冗余资源减少、资源压缩、系统漏洞修复等模块。可提高应用稳定性15%~25%,安装包大小可减少1MB~10MB。优化器是根据Apache2.0许可协议编写的,并附带优秀的开发文档。3.ShakeShake是最好的漏洞检测工具之一,它检查用户操作步骤以重现漏洞并收集漏洞的屏幕截图和视频。这个工具可以帮助你更轻松地处理测试项目或生产过程中的所有漏洞,值得一用。正如你在图片中看到的那样,你可以摇动设备,然后会弹出一个用于上传错误报告的模板,用户可以在其中标记漏洞、混淆机密数据并描述问题,并将其返回给开发团队。它的开发者文档有简洁明了的安装方法,还附带了一个在线演示,可以从内部了解该工具的工作原理。4.ScabbardScabbard将Dagger2依赖图可视化,帮助大家理解。Scabbard可视化入口点、依赖关系图、组件关系和范围,允许用户轻松地将它们集成到项目中。该工具可以与Gradle、AndroidStudio或IntelliJ完美集成,装订线图标可以直接从源代码中轻松查看组件或子组件。它的开发文档非常好,有很多例子和建议,都是在Apache2.0许可下发布的。5.我可以放下Jetifier吗?众所周知,有时从旧的支持库迁移到AndroidX并不容易,尤其是对于大型遗留项目。使用Jetifier是迁移成功的关键(Jetifier将仍然基于旧组件的依赖转换为运行AndroidX类),但同时也增加了开发时间。随着越来越多的库迁移到AndroidX,总有一天这个工具将不再需要。如果出现了新版本,这个插件可以识别出你正在使用的需要迁移到AndroidX或者需要更换的库。其开发文档清晰易懂,项目在Apache2.0许可下发布。推荐指数五颗星!6.ADBEventMirror您可以使用ADBEventMirror将一台设备的触摸/按键/按钮事件实时镜像和复制到另一台或多台其他设备。该脚本无意规范化分辨率、密度、方向或布局差异。在具有完全相同配置的模拟器上运行时效果最佳。该工具允许您同时在不同类型的模拟器上测试您的应用程序。7.AndroidEmulatorContainerScriptsAndroidEmulatorContainerScripts是一组小脚本,用于在容器中运行各种系统(如Docker)的模拟器,供外部使用。该脚本与Python2和3兼容。这个repo命令非常流行,支持在远程计算机上运行多个模拟器。该项目在Apache2.0许可下发布,并具有出色的开发文档。8.AutoplayAutoplay是一个Gradle插件,可以将Android工件发布到GooglePlay。您可以将其视为GradlePlayPublisher或Fastlane的直接替代品,您可以以apk或AppBundle的形式发布应用程序。针对CI/CD(持续集成/持续部署)进行了优化对开发人员友好可靠稳定,面向未来该项目具有出色的1.3.0版开发文档,在Apache2.0许可下发布。9.GradleStaticAnalysisPluginGradleStaticAnalysisPlugin是所有有用的静态代码分析工具的一个很好的替代品,例如:CheckstylePMDFindBugs[已弃用][在Gradle6.0中删除]SpotBugsDetektAndroidLintKtLint您可以轻松地将这些工具集成到代码库中,无需自己设置这些工具。该插件在Apache2.0许可下发布,包括出色的开发文档甚至示例项目。10.AndroidUtilCodeAndroidUtilCode是一个功能强大且易于使用的Android库。封装了Android开发中常用的功能,有完整的demo和单元测试。通过使用其封装的API(应用程序编程接口),可以大大提高开发效率。项目主要包括两个模块,分别是utilcode(主要用于开发)和subutil(很少用于开发但简化了主模块)。其代码版本为1.29.0,在Apache2.0许可下发布。11.HijckrHijckr参与Android的布局初始化过程,将命名元素重定向到其他类。这个工具很有趣。例如,对于包含TextView的布局文件,Android通常会加载Android.widget.TextView,但我们也可以反其道而行之,通过劫持xml标签来加载com.myapp.TextView。该工具的README文档非常全面,可以帮助用户快速上手使用这个完全用Java编写的工具。12.RoomigrantRoomigrant是一个帮助程序库,能够使用编译时代码生成自动创建AndroidRoom库迁移。它使用Room库生成的scheme文件,根据它们之间的差异生成migrations,也就是说必须在build.gradle文件中开启Room结构的生成,在README文档中有详细说明。该项目在MIT许可证下发布,版本0.1.7。13.RoomExplorer将数据库迁移到Room后,我们可以在查看器中查看这个数据库。RoomExplorer可以让你以表格的形式查看所有表格数据,还支持在表格中插入、更新或删除行,以及删除和释放表空间等。该工具具有优秀的开发文档,在Apache2.0下发布执照。14.android-framerAndroid-framer工具支持在GooglePlay截图上添加边框和文字主题,灵感来自fastlaneframeit。该工具使用Python和ImageMagick构建,您可以配置使用的边框(背景),如FacebookDesign,以及调整字体大小和边框大小等。它是在Apache2.0许可下发布的。15.DependencyTreeDiffDependncyTreeDiff是“为输出Gradle的依赖任务而开发的智能diff工具,始终显示根依赖的路径”。您可以使用brew或仅使用jar文件安装此工具,它是在Apache2.0许可下发布的。16.GradleDoctorGradleDoctor是一个用于扫描Gradle构建的插件。它包括构建速度问题的可配置警告,测量在Dagger注释处理器中花费的时间,确保设置JAVA_HOME并匹配IDE(集成开发环境)的JAVA_HOME。该工具可方便地用于禁用测试缓存、发现空src目录时停止构建(因为空src目录会导致缓存未命中)等。它附带大量开发文档,并在Apache2.0许可下发布。17.GloballyDynamicGloballyDynamic是“一套旨在普及动态交付(DynamicDelivery)的工具,使其不受内置应用商店或分发平台的限制,并提供独立统一的Android客户端API和流畅的开发者体验》目前支持:GooglePlayStore(播放功能交付)HuaweiAppGallery(动态能力)其他大多数与GloballyDynamicServer合作的平台(如:AmazonAppStore、SamsungGalaxyStore和FirebaseAppDistribution,在本地开发运行时也支持。)作者建议阅读您的README文档以获取更多详细信息。它是在Apache2.0许可下发布的。18.DaggerBrowserDaggerBrowser是另一个工具(ProgressiveWebApp),可以轻松导航项目Dagger图。图形数据由DaggerSPI插件、CRA(create-react-app,一种用于创建Web应用程序的工具)和Typescript创建的浏览器填充。还有一个示例应用程序显示了该工具的工作原理。所有内容均根据BSD-3-Clause许可发布。19.WormholeWormhole是“一个向后和向前兼容的字节码重写器,它将未来可能出现的API添加到android.jar中。它可以重写android.jar上的字节码,使其与可用的D8和R8API兼容。”Wormhole保证向后兼容最新的API。例如:“AndroidR中有Java9的新方法,比如List.of。由于D8和R8的存在,这些方法不是API30独有的,而是兼容API1的。有一系列D8和R8中的方法的字节码重写了android.jar中尚不存在的API的方法。该项目允许用户立即使用这些API,从而节省了漫长的等待时间。”20.MNMLMNML,发音为“minimal”,是一款免费且简单的安卓屏幕录制软件。可以录制屏幕的应用程序和工具有很多,现在几乎所有的新设备都内置了屏幕录制功能,但是如果你想学习如何开发和实现这样的屏幕录制应用程序,这个项目是一个很好的学习资源。这个项目是在Apache2.0许可证下发布的。希望作者分享的工具能给大家带来启发和启发。
