软件名称 | 版本要求 | 用途说明 |
---|---|---|
JDK | 8+/11+ | Java开发工具包 |
Android Studio | 3+ | 官方集成开发环境 |
Android SDK | 对应API级别 | 安卓开发工具包 |
# MAC/Linux配置示例 export ANDROID_HOME=/Users/username/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools # Windows配置示例 setx ANDROID_HOME "D:sdk" setx PATH "%PATH%;%ANDROID_HOME%tools;%ANDROID_HOME%platform-tools"
模块类型 | 功能描述 | 快捷键 |
---|---|---|
布局编辑器 | 可视化界面设计 | N/A |
Logcat | 日志查看工具 | Alt+6 |
Profiler | 性能分析器 | Alt+5 |
ADB工具 | 设备调试终端 | N/A |
// build.gradle(Project)示例 buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' } } // build.gradle(Module)示例 android { compileSdk 33 defaultConfig { applicationId "com.example.myapp" minSdk 21 targetSdk 33 versionCode 1 versionName "1.0" } }
app/ ├── src/ │ ├── main/ │ │ ├── java/com/example/myapp/ # Kotlin代码存放目录 │ │ ├── res/ # 资源文件目录 │ │ │ ├── layout/ # 布局文件 │ │ │ ├── values/ # 字符串/颜色等资源 │ │ ├── AndroidManifest.xml # 应用配置文件 ├── build.gradle # 模块级构建脚本
graph TD A[onCreate()] --> B[onStart()] B --> C[onResume()] C --> D[onPause()] D --> E[onStop()] E --> F[onDestroy()] C --> G[onRestart()] G --> B
getSupportFragmentManager()
commitAllowingStateLoss()
防止状态丢失异常onActivityCreated()
早于onCreateView()
存储类型 | 适用场景 | 数据容量 | 访问速度 |
---|---|---|---|
SharedPreferences | 轻量级键值存储 | <1MB | 最快 |
SQLite数据库 | 结构化数据存储 | 无限制 | 中等 |
Room持久化库 | 对象关系映射 | 无限制 | 较快 |
文件存储 | 多媒体/大文件 | 无限制 | 较慢 |
SPFS缓存 | 临时数据缓存 | <10MB | 中等 |
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
// 创建API接口 interface ApiService { @GET("users/{id}") suspend fun getUser(@Path("id") userId: Int): Response<User> } // 实例化Retrofit val retrofit = Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .build() val service = retrofit.create(ApiService::class.java)
优化类型 | 具体措施 |
---|---|
对象复用 | 使用ObjectPool缓存Bitmap/View |
及时释放 | onDestroy时置空引用对象 |
静态优化 | 将工具类改为static final |
内存泄漏检测 | 使用LeakCanary库 |
签名配置:生成jks密钥库文件
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000
构建发布版:在Gradle配置中设置
buildTypes { release { minifyEnabled false // 混淆关闭(调试阶段) proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') } }
应用商店准备:
Q1:如何在Fragment中安全地调用Activity的方法?
A1:推荐使用接口回调机制,通过requireActivity()
获取Activity实例后强制转换,示例代码:
// 在Fragment中调用Activity方法 (requireActivity() as MainActivity).updateUI()
更安全的方式是定义接口:
interface OnDataUpdateListener { fun onDataUpdated() } // 在Activity实现接口 class MainActivity : AppCompatActivity(), OnDataUpdateListener { override fun onDataUpdated() { / 更新逻辑 / } }
Q2:处理复杂嵌套布局时有哪些优化技巧?
A2:优化方案包括:
merge
标签合并相同层级的布局include
标签复用重复布局模块ViewStub
延迟加载非必要视图