当前位置:   article > 正文

安卓移动开发基础入门_安卓工程目录结构

安卓工程目录结构

一、安卓开发特点

1 App的运行环境

        ①在模拟器上运行App应用;

        ②使用真实手机调试App。

        通过adb连接PC和安卓操作系统。

2 安卓开发语言

        ①App 开发主要有两大技术路线,分为原生开发混合开发

        (原生开发用户体验好,混合开发跨平台性强)

        ②Android 的官方编程语言包括 JavaKotlin。 

        ③我们的布局文件用XML来写,但后面可能会被Compose所替代。

3 App连接的数据库

        我们以前在学习Java编程时,基本会设计一些数据库操作,这个数据库可能是MySQL,也可能是Oracle,也可能是SQL Server。然而手机不能直接操作上述的几种数据库。

        其实Android早已经内置了专门的数据库,名为SQLite,其语法类似MySQL。SQLite无须单独安装,因为它已经内嵌到了应用进程当中,所以App无须配置连接信息,即可直接对其增删改查。由于SQLite嵌入到应用程序中,省去了数据库服务器的开销,因此它又被称为嵌入式数据库。

二、App工程目录结构

        ①App工程分为两个层次,第一个层次是项目,另外一个层次是模块

        ②模块依附于项目,每一个项目至少有一个模块,也可以拥有多个模块;

        ③一般我们说的“编译运行App”,指的是运行某个模块,而非运行某个项目,因为模块才对应实际的App。

1 App下的子目录

        1.1 manifests子目录

        下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文件;

        1.2 java子目录

        下面有3个com.example.myapp包,其中第一个包存放当前模块的Java源代码,后面两个包存放测试用的Java代码;

        1.3 res子目录

        存放当前模块的资源文件。res下有4个子目录:

        ① drawable目录:存放图形描述文件与图片文件;

                矢量图:放大不影响清晰度;

                位图:放大会影响清晰度。

        ② layout目录:存放App页面的布局文件;

        ③ mipmap目录:存放App的启动图标;

        ④ values目录:存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。

2 Gradle Scripts下的目录 

        2.1 Gradle Scripts简介

        Gradle Scripts下面主要是工程的编译配置文件,主要有:

        ① build.gradle:App工程的编译配置文件,该文件分为项目级别与模块级别两种,用于描述App工程的编译规则;

        (工程级别是全局的配置,模块的配置就只影响App的模块)

        ② proguard-rules.pro:该文件用于Java代码的混淆规则;

        (因为APK可以解压,通过反编译可以看到源码,故需要混淆)

        ③ gradle.properties:该文件用于配置编译工程的命令行参数,一般无需改动;

        ④ settings.gradle:该文件配置了需要编译哪些模块。初始内容为include ':app',表示只编译app模块;

        ⑤ local.properties:本地项目的配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。

        2.2 什么是Gradle

        Gradle 是一个项目自动化构建工具,帮助我们做依赖、打包、部署、发布、各种渠道的差异管理等工作。

        我们要把整个拥有这么多代码的工程发布运行,最终是要打包为APK文件才能发布,那么多代码要APK打包,以及源代码的编译,这一系列的过程全由Gradle来完成。(类似Java Web编程中的 Maven )

        注意:

        ① Gradle工具的版本配置在gradle\wrapper\gradle-wrapper.properties;

        (也可以在File->Project Structure -> Project,在设置界面中修改Gradle Version) 

        ② 不同版本的Android Studio都有对应版本的Gradle版本,当两者版本匹配时,才可运行成功

        2.3 App下的 build.gradle 文件示例

  1. plugins {
  2. id("com.android.application")
  3. id("org.jetbrains.kotlin.android")
  4. }
  5. android {
  6. //指定SDK的版本号
  7. namespace = "com.example.ilikelearning"
  8. compileSdk = 34
  9. defaultConfig {
  10. // 指定该模块的应用编号,也就是App的包名
  11. // (在安卓开发中,App的包名,就是App的唯一标识,就像App的身份证号码)
  12. applicationId = "com.example.ilikelearning"
  13. // 指定App适合运行的最小SDK版本号
  14. minSdk = 24
  15. // 表示App最希望在哪个版本的Android运行
  16. targetSdk = 34
  17. // 指定App的应用版本号
  18. versionCode = 1
  19. // 指定App的应用版本名称
  20. versionName = "1.0"
  21. // 单元测试
  22. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  23. }
  24. // 指定混淆规则的文件
  25. buildTypes {
  26. release {
  27. isMinifyEnabled = false
  28. proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
  29. }
  30. }
  31. compileOptions {
  32. sourceCompatibility = JavaVersion.VERSION_1_8
  33. targetCompatibility = JavaVersion.VERSION_1_8
  34. }
  35. kotlinOptions {
  36. jvmTarget = "1.8"
  37. }
  38. }
  39. // 指定App编译的依赖信息
  40. dependencies {
  41. // 官方做的兼容性解决方案
  42. // 以下为各种依赖项:当我们点击同步时,其就会取互联网下载对应的依赖库
  43. implementation("androidx.core:core-ktx:1.10.1")
  44. implementation("androidx.appcompat:appcompat:1.6.1")
  45. implementation("com.google.android.material:material:1.9.0")
  46. implementation("androidx.constraintlayout:constraintlayout:2.1.4")
  47. testImplementation("junit:junit:4.13.2")
  48. androidTestImplementation("androidx.test.ext:junit:1.1.5")
  49. androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
  50. }

3 清单文件(AndroidManifest.xml)

        每个应用的根目录都必须包含一个AndroidManifest.xml,并且文件名必须固定这样,不可修改。这个文件包含了App的配置信息,系统需要工具里面的内容运行App的代码,显示界面。

        3.1 常见属性

        ① android:allowBackup : 是否允许备份;

        ② android:icon :指定App在手机屏幕上显示的图片; 

        ③ android:label :指定App在手机屏幕上显示的名称; 

        ④ android:roundIcon :指定App的圆角图标; 

        ⑤ android:supportsRtl :是否支持阿拉伯语 / 波斯语这种从右到左的文字排列顺序;

        ⑥ android:theme :指定App的显示风格。 

        application 后面部分还有 activity 节点,这是活动页面的注册声明。只有在AndroidManifest.xml 中正确配置activity节点,才可在运行时访问对应的活动页面。初始配置的 MainActivity 是App的默认主页,因为其 activity 节点内部配置了如下过滤信息。

  1. <intent-filter>
  2. <action android:name="android.intent.action.MAIN" />
  3. <category android:name="android.intent.category.LAUNCHER" />
  4. </intent-filter>

        action 节点中设置的 android.intent.action.MAIN 表示该页面是App的入口页面,启动App时会先打开该页面。category 节点设置的 android.intent.category.LAUNCHER 决定了是否在手机屏幕上显示App图标。

        3.2 清单文件示例

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools">
  4. <application
  5. android:allowBackup="true"
  6. android:dataExtractionRules="@xml/data_extraction_rules"
  7. android:fullBackupContent="@xml/backup_rules"
  8. android:icon="@mipmap/ic_launcher"
  9. android:label="@string/app_name"
  10. android:roundIcon="@mipmap/ic_launcher_round"
  11. android:supportsRtl="true"
  12. android:theme="@style/Theme.ILikeLearning"
  13. tools:targetApi="31">
  14. <activity
  15. android:name=".GirdLayoutStaticActivity"
  16. android:exported="false" />
  17. <activity
  18. android:name=".MainActivity"
  19. android:exported="true">
  20. <intent-filter>
  21. <action android:name="android.intent.action.MAIN" />
  22. <category android:name="android.intent.category.LAUNCHER" />
  23. </intent-filter>
  24. </activity>
  25. </application>
  26. </manifest>

4 Activity

        Activity 是一个应用程序的组件,提供一个屏幕,可以用来与用户交互,完成某项任务。

        (即包含可执行操作的界面。)

三、App的活动页面

1 界面显示与逻辑处理

        1.1 分工

        利用XML标记描绘应用界面,使用Java代码书写程序逻辑 。

        1.2 好处

        ① 使用XML文件描绘App界面,可以方便第在Android Studio上预览界面效果;

        ② 一个界面布局可以被多处代码复用,一个 Java 代码也可以适配多个界面布局。

2 新App页面的创建

        2.1 完整的页面创建步骤(纯手工)

        ① 在 layout 目录下创建XML文件;

        ② 创建与 XML 文件对应的 Java 代码;

        ③ 在 AndroidManifest.xml 中注册页面配置。

        2.2 快速创建App活动页面

        可以直接在java下的包直接new一个Activity,这样就全自动创建了。

        自动创建的Java文件:

        自动创建的xml文件:

        在 AndroidManifest.xml 自动注册页面配置:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/582330
推荐阅读
相关标签
  

闽ICP备14008679号