# 构建第一个 Android APP

  • 工具安装与环境配置
  • 介绍项目工程结构
  • 实践:构建出第一个 Apk

# 工具安装与环境配置

安装 Android sutido、下载 Android SDK ,Kotlin 开发环境配置

  • Android Studio 下载官网

  • Android SDK 下载

# 工程结构介绍

├── app   //工程主模块名称
│   ├── build.gradle  //app模块的配置文件(签名信息,依赖包,版本号,包名....)
│   ├── libs          //放置第三方依赖的jar包,aar,so文件...
│   ├── proguard-rules.pro //打包的混淆规则配置
│   └── src           //源码文件夹
│       ├── main      //主工程源码文件夹
│       │   ├── AndroidManifest.xml  //清单文件(权限声明,四大组件注册...)
│       │   ├── java
│       │   │   └── com
│       │   │       └── example
│       │   │           └── firstapp
│       │   │               ├── MainActivity.kt //页面的名称
│       │   │               └── ui      
│       │   │                   ├── dashboard   
│       │   │                   │   ├── DashboardFragment.kt
│       │   │                   │   └── DashboardViewModel.kt
│       │   │                   ├── home
│       │   │                   │   ├── HomeFragment.kt
│       │   │                   │   └── HomeViewModel.kt
│       │   │                   └── notifications
│       │   │                       ├── NotificationsFragment.kt
│       │   │                       └── NotificationsViewModel.kt
│       │   └── res         //res全称resource,下面是各类资源文件
│       │       ├── drawable//矢量图片存放文件夹
│       │       │   ├── ic_dashboard_black_24dp.xml
│       │       │   ├── ic_home_black_24dp.xml
│       │       │   ├── ic_launcher_background.xml
│       │       │   └── ic_notifications_black_24dp.xml
│       │       ├── layout //页面布局文件存放文件夹
│       │       │   ├── activity_main.xml
│       │       │   ├── fragment_dashboard.xml
│       │       │   ├── fragment_home.xml
│       │       │   └── fragment_notifications.xml
│       │       ├── menu  //菜单资源文件夹(导航栏,侧边栏)
│       │       │   └── bottom_nav_menu.xml
│       │       ├── mipmap-xhdpi// 常规图片资源文件夹(.png,.jpg)
│       │       │   ├── ic_launcher.png
│       │       │   └── ic_launcher_round.png
│       │       ├── navigation  //navigation框架导航框架资源存放文件夹
│       │       │   └── mobile_navigation.xml
│       │       ├── values      //颜色、尺寸,字符串,主题
│       │       │   ├── colors.xml
│       │       │   ├── dimens.xml
│       │       │   ├── strings.xml
│       │       │   └── themes.xml
│       │       └── values-night// 夜间模式的主题
│       │           └── themes.xml
│       └── test  //java 测试
│       │       └── java
│       │        └── com
│       │            └── example
│       │                └── firstapp
│       │                    └── ExampleUnitTest.kt
│       ├── androidTest //android测试
│       │   └── java
│       │       └── com
│       │           └── example
│       │               └── firstapp
│       │                   └── ExampleInstrumentedTest.kt
├── build.gradle  //整个工程的配置文件(maven仓库,android-gradle-plugin插件...)
├── gradle      
│   └── wrapper  //这个是gradle文件夹
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties // 虚拟机配置文件
├── gradlew           //下面两个是一些打包脚本配置文件(./gradle assembleDebug)
├── gradlew.bat     
├── local.properties  // 本地配置文件(如读取一些配置常量)
└── settings.gradle   // 模块管理配置文件(app,libray,libray2. 如果要参与编译则都需要在这里配置才会生效)

# 实践:构建出第一个 Apk

android_apk_build

<video src="https://www.songyubao.com/book/primary/environment/andorid_apk.mp4" height="800" controlls="true" style="box-sizing: border-box; -webkit-tap-highlight-color: transparent; text-size-adjust: none; -webkit-font-smoothing: antialiased; display: inline-block; font-size: inherit;"></video>

# Android Studio 的完全卸载清理

rm -Rf /Applications/Android\ Studio.app 
rm -Rf ~/Library/Preferences/AndroidStudio*
rm ~/Library/Preferences/com.google.android.studio.plist
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*
rm -Rf ~/.gradle
rm -Rf ~/.android
rm -Rf ~/Library/Android*

如果您想删除所有项目

rm -Rf ~/AndroidStudioProjects