用途:提供 Android SDK 相关开发协助,覆盖传统 Android 开发工具链(Views、Activity、Fragment、XML),使用 Kotlin 或 Java,适用于维护 Compose 之前的存量应用。
适用场景:原生 Android 开发;蓝牙低功耗、相机、生物识别、NFC 等硬件与传感器直接交互;用 WorkManager 与前台服务管理延迟、周期或需保证执行的后台任务;自定义启动器小部件、通知渠道、无障碍服务和设备管理策略等深度系统集成。
主要能力:Activity 与 Fragment 生命周期回调管理,用于配置变更时获取与释放资源、避免内存泄漏;Hilt 依赖注入,以 @HiltAndroidApp、@AndroidEntryPoint、@Inject 等与 Android 生命周期绑定的作用域统一 Dagger 注入;运行时权限,通过 registerForActivityResult 与 ActivityResultContracts.RequestPermission 发起细粒度请求并处理授予与否;后台处理,以 CoroutineWorker 配合 Constraints(如 NetworkType.CONNECTED、setRequiresBatteryNotLow)和 PeriodicWorkRequestBuilder 入队持久任务;ViewBinding 替代 findViewById。
使用要点:build.gradle.kts 中启用 viewBinding;Activity 中通过 ActivityMainBinding.inflate 设置视图;权限在用户触发操作时经 requestPermissionLauncher.launch(Manifest.permission.CAMERA) 请求。
最佳实践:采用 Edge-to-Edge,面向 Android 15+ 用 WindowInsetsCompat 处理系统栏;后台任务统一用 WorkManager,不自行创建会被 Doze 终止的线程;文件存入应用私有目录(context.filesDir)或使用 Storage Access Framework;避免阻塞主线程,网络、JSON 解析与数据库事务放在 IO 调度器;尺寸与文案分别放 dimens 与 strings.xml;不要静态持有 Activity Context,否则造成内存泄漏。
常见问题:ANR 多因主线程阻塞超过 5 秒,应移至 Dispatchers.IO;Fragment not attached 因解绑后访问 context,可用 isAdded 判断;内存泄漏多因单例或后台线程持有 Activity 引用,可用 WeakReference 或 Application Context。
限制:本技能聚焦传统 Views 与 Android SDK 体系,所给资料未涉及具体版本兼容范围、商业授权与收费信息,相关内容暂未提供;示例代码与命令须保持原样使用。