Home

LLVM

LLVM Reference clang JSON Compilation Database Format Specification compile_commandsjson Clang-Tidy

Read more

Jetpack

Jetpack 集成 添加google仓库 dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } } 添加依赖 dependencies { def lifecycle_version = “2.2.0” implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecyc...

Read more

Android Framework

Android Framework 常见的架构原则 分离关注点 Activity 和 Fragment 中写所有代码是错误的, 它们只是系统和应用间的粘合类. 通过数据模型驱动界面 应该通过数据模型驱动界面(最好是持久性模型)。数据模型代表应用的数据。 持久性模型是理想之选,原因如下: 如果 Android 操作系统销毁应用以释放资源,用户不会丢失数据。 当网络连接不稳定或不可用时,应用会继续工作。 单一数据源(SSOT) 在离线优先应用中,应用数据的单一数据源通常是数据库。在其他某些情况下,单一数据源可以是 ViewModel 甚至是界面。 单向数据流(UDF) 在我们的指南中,单一数据源原则常常与单向数据流 (UDF) ...

Read more

AndroidX

AndroidX 如果要在新项目中使用命名空间为 androidx 的库,就需要将编译 SDK 设置为 Android 9.0(API 级别 28) 或更高版本,并在 gradle.properties 文件中将以下两个 Android Gradle 插件标志设置为 true。 android.useAndroidX:该标志设置为 true 时,Android 插件会使用对应的 AndroidX 库,而非支持库。如果未指定,那么该标志默认为 false。 android.enableJetifier:该标志设置为 true 时,Android 插件会通过重写其二进制文件来自动迁移现有的第三方库,以使用 AndroidX 依赖项。如果未指定,那么该标志默认为 fal...

Read more

Application Fundamentals

Application Fundamentals Android apps 可以使用kotlin, java, c++语言编写, Android SDK tools 会编译代码, 把 数据文件和资源文件打包成APK或者Android App Bundle. Apk包是一个Android package, 后缀.apk, 是zip的压缩包. 可以提供安装和运行的数据. Android App Bundle, 后缀.aab, 不能直接安装. 它将APK生成和签名推迟到稍后(google play). AAB把apk分为主模块和动态特性模块, 在资源维度, ABI维度, Language维度进行了拆分. 当google play分发应用时, 会根据用户设备优化AP...

Read more