← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

android-studio

带有模拟器和性能分析器的Android Studio IDE。用于Android开发。

person作者: jakexiaohubgithub

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'. |

References