从GitHub克隆项目源代码。
git clone https://github.com/zhufucdev/MotionEmulator
shell 代码
main
为开发分支,在达到稳定后合并进stable
。不接受提交至stable
分支的拉取请求。
这个项目十分激进。最新的Android Studio Cancary被用来编写和调试这个项目。你可以从Android Developers获得一份它的副本。请安装最新的编译工具和SDK。下表是经过测试的工具版本。
名称 | 版本号 |
Android Studio | Android Studio Iguana 2023.2.1 Canary 1 |
SDK Build Tools | 34 |
SDK Platforms | 34 revision 2 |
JDK | Amazon Corretto 17 |
用Android Studio打开克隆的项目。如果没有自动同步,点击右上角的Sync Project with Gradle Files
按钮。
在根目录下新建local.properties。所需字段如下表所示。
名称 | 格式 | 说明 |
sdk.dir | 文件系统路径 | Android SDK文件夹根目录 |
amap.web.key | 32位十六进制数 | 高德地图Web API密钥·文档 |
AMAP_SDK_KEY | 32位十六进制数 | 高德地图Android SDK密钥·文档 |
GCP_MAPS_KEY | /[a-zA-Z0-9_]*/ | 谷歌地图SDK密钥·文档 |
将各密钥值留空,可以通过编译。通常不建议这么做,除非你知道自己在做什么。
运动模拟器主程序和模拟位置插件具有自检查更新功能。如果你希望发布自己的运动模拟器发行版,可自建服务器。在app和mock_location_plugin目录下创建server.properties。填入以下字段。
名称 | 格式 | 说明 |
PRODUCT | 无空格字符串 | 用于自索引的项目ID |
SERVER_URI | HTTP URL | 服务器地址。项目使用的Ktor仅支持HTTP(S)协议。 |
要自建服务器,就要实现特定的RESTful API。参考我的实现。
在提交前,至少在推送前,请留意IDE的警告,特别是对冗余引入(unused import directive)的警告。
请保持提交的代码被正确格式化。统一使用4空格缩进。单行100字符。禁止大量无意义空行。
如果有破坏性更改(breaking changes),例如修改了stub API的参数,请修改或添加文档。
接受大规模重构,当且仅当新的实现更加规范或便于维护。
大规模重构,是指重新实现了应用框架,因为原先的框架不是最佳实践。前端的大规模重构可能是改变了主页面的整理方式。后端的大规模重构可能是重新实现了通讯桥。
该项目对单元测试没有强制要求。仅在自动化比手动测试节约时间时编写和运行测试,例如进程间通信。该项目不以单元测试的通过率为标准评价拉取请求的质量。
请遵循M3设计指南。尽可能使用Jetpack Compose编写新页面。UI美观,UX流畅、符合直觉。
请使用ViewModel或遵循其设计模式(designing pattern),注意资源回收、作用域和生命周期。
页面相关的文件,整理在.ui包下。一个Activity衍生的不同Fragment或Composable,整理在同一子目录下。
避免使用全局扩展。请使用DSL模式限制作用域。
fun String.toInt(): Int {...}
kotlin 代码
fun parseInt(str: String): Int {...}
kotlin 代码
将相关的扩展整理在同一个文件。避免Utility.kt。
留下你的评论,我是不会读的。
写得不咋样?你可以帮助改进这篇文章。
此网站受reCAPTCHA保护,因而Google的隐私权政策和服务条款生效。
Copyright zhufucdev 2024