最近我开始开发新的android appication。我决定采用上帝模式或开发人员模式来记录日志,或被迫显示应用程序的某些功能。此模式仅适用于特定口味,或者可能是单独的android模块(库),因为我不想影响生产代码。我的问题是有可能在应用启动时从该模式激发代码(例如显示通知),而不会影响生产代码吗?例如,不要覆盖Application.onCreate来启动God模块,因为在发行版本中我无法访问代码。如果没有,我有计划使用反射检查specyfies类是否在类路径中,并且如果运行它,是个好主意吗?
答案 0 :(得分:0)
我找到了一个发布的解决方案,以防止提出问题。我使用ContentProvider,因为此组件可以在Application.onCreate()之前启动
我找到了一个发布的解决方案,以防止提出问题。我使用ContentProvider,因为此组件可以在调用Application.onCreate()之前启动,示例代码:
/**
* Content providers are loaded before the application class is created. [DevTool] is
* used to install tools on application start.
*/
internal sealed class AppInstaller : ContentProvider() {
override fun onCreate(): Boolean {
val application = context!!.applicationContext as Application
DevTools.install(application)
return true
}
override fun query(
uri: Uri,
strings: Array<String>?,
s: String?,
strings1: Array<String>?,
s1: String?
): Cursor? {
return null
}
override fun getType(uri: Uri): String? {
return null
}
override fun insert(
uri: Uri,
contentValues: ContentValues?
): Uri? {
return null
}
override fun delete(
uri: Uri,
s: String?,
strings: Array<String>?
): Int {
return 0
}
override fun update(
uri: Uri,
contentValues: ContentValues?,
s: String?,
strings: Array<String>?
): Int {
return 0
}
}
现在我添加到了gradle
debugImplemetation devtool
并且我只有调试工具才具有调试工具,现在它们会影响生产代码!