Android Studio
Android Studio is the official integrated development environment (IDE) for Android application development, built on IntelliJ IDEA with rich profiling and emulator tools.
When to Use
- Native Android & Jetpack Compose Development: Official Google IDE with visual layout editor, Compose preview, and Profiler.
- Gradle Build Script Optimization: Configuring multi-module build logic with Kotlin DSL (
build.gradle.kts). - Android Emulator & Device Management: Running virtual and physical devices via ADB and headless emulator CLI.
- App Performance & Memory Profiling: Diagnosing frame drops, memory leaks, and CPU spikes using Android Studio Profiler.
Quick Start
# Launch Android Studio or build project from command line
./gradlew assembleDebug
# Install and run on connected device/emulator
./gradlew installDebug
adb shell am start -n "com.example.app/.MainActivity"
Core Concepts
Jetpack Compose Preview & UI Inspection
Authoring declarative UI with multi-device previews:
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@Composable
fun MetricCard(title: String, value: String, modifier: Modifier = Modifier) {
Card(
modifier = modifier.padding(8.dp),
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceVariant)
) {
Column(modifier = Modifier.padding(16.dp)) {
Text(text = title, style = MaterialTheme.typography.labelMedium)
Spacer(modifier = Modifier.height(4.dp))
Text(text = value, style = MaterialTheme.typography.headlineMedium)
}
}
}
// Interactive Preview for Android Studio Design Canvas
@Preview(name = "Light Mode", showBackground = true)
@Preview(name = "Dark Mode", uiMode = android.content.res.Configuration.UI_MODE_NIGHT_YES)
@Composable
fun MetricCardPreview() {
MaterialTheme {
MetricCard(title = "Network Throughput", value = "1.2 GB/s")
}
}
Modern Gradle Build Configuration (build.gradle.kts)
Multi-module build setup with version catalogs:
// app/build.gradle.kts
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
}
android {
namespace = "com.company.enterpriseapp"
compileSdk = 35
defaultConfig {
applicationId = "com.company.enterpriseapp"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "2026.1.0"
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
}
Headless Emulator & ADB Operations
Managing testing devices from command line:
# List available Android Virtual Devices (AVDs)
emulator -list-avds
# Launch AVD headlessly in CI runner
emulator -avd Pixel_8_API_35 -no-window -no-audio -no-boot-anim &
# Wait for device to complete boot
adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
Common Patterns
Gradle Build Cache and Memory Optimization
Problem: Slow Gradle build and sync times inside Android Studio.
Solution:
Configure build properties in gradle.properties:
org.gradle.jvmargs=-Xmx4096m -XX:+UseParallelGC
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
android.useAndroidX=true
Best Practices
Do:
- Migrate build scripts to Kotlin DSL (
build.gradle.kts) and Gradle Version Catalogs (libs.versions.toml). - Enable R8 code shrinking and resource minification (
isMinifyEnabled = true) on release builds. - Utilize Android Studio Profiler (CPU, Memory, Energy) before pushing production releases.
- Allocate sufficient heap memory to the Gradle daemon in
gradle.properties(org.gradle.jvmargs=-Xmx4096m).
Don't:
- Leave debug signing credentials in open repositories; inject keystores via environment variables.
- Run heavy unit tests on the Android Emulator if pure JVM unit tests (
src/test) suffice. - Ignore Lint warnings; configure
lint { abortOnError = true }in CI.
Troubleshooting
| Error | Cause | Solution |
| :--------------------------------------------- | :-------------------------------------------------------------------- | :----------------------------------------------------------------------- |
| Gradle sync failed: Connection timed out | Proxy, firewall, or Gradle wrapper downloading over slow network. | Check offline work in Gradle settings or use pre-downloaded wrapper. |
| Installed Build Tools revision is corrupted | Incomplete download of Android SDK Build Tools. | Open SDK Manager, uninstall affected Build-Tools version, and reinstall. |
| Emulator: Process crashed with exit code 139 | Hardware acceleration (HAXM/Hypervisor) conflict or GPU driver issue. | Change Emulator settings > Emulated Performance: Graphics to 'Software'. |
微信扫一扫