赞
踩
①在模拟器上运行App应用;
②使用真实手机调试App。
通过adb连接PC和安卓操作系统。
①App 开发主要有两大技术路线,分为原生开发和混合开发;
(原生开发用户体验好,混合开发跨平台性强)
②Android 的官方编程语言包括 Java 和 Kotlin。
③我们的布局文件用XML来写,但后面可能会被Compose所替代。
我们以前在学习Java编程时,基本会设计一些数据库操作,这个数据库可能是MySQL,也可能是Oracle,也可能是SQL Server。然而手机不能直接操作上述的几种数据库。
其实Android早已经内置了专门的数据库,名为SQLite,其语法类似MySQL。SQLite无须单独安装,因为它已经内嵌到了应用进程当中,所以App无须配置连接信息,即可直接对其增删改查。由于SQLite嵌入到应用程序中,省去了数据库服务器的开销,因此它又被称为嵌入式数据库。
①App工程分为两个层次,第一个层次是项目,另外一个层次是模块;
②模块依附于项目,每一个项目至少有一个模块,也可以拥有多个模块;
③一般我们说的“编译运行App”,指的是运行某个模块,而非运行某个项目,因为模块才对应实际的App。
下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文件;
下面有3个com.example.myapp包,其中第一个包存放当前模块的Java源代码,后面两个包存放测试用的Java代码;
存放当前模块的资源文件。res下有4个子目录:
① drawable目录:存放图形描述文件与图片文件;
矢量图:放大不影响清晰度;
位图:放大会影响清晰度。
② layout目录:存放App页面的布局文件;
③ mipmap目录:存放App的启动图标;
④ values目录:存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。
Gradle Scripts下面主要是工程的编译配置文件,主要有:
① build.gradle:App工程的编译配置文件,该文件分为项目级别与模块级别两种,用于描述App工程的编译规则;
(工程级别是全局的配置,模块的配置就只影响App的模块)
② proguard-rules.pro:该文件用于Java代码的混淆规则;
(因为APK可以解压,通过反编译可以看到源码,故需要混淆)
③ gradle.properties:该文件用于配置编译工程的命令行参数,一般无需改动;
④ settings.gradle:该文件配置了需要编译哪些模块。初始内容为include ':app',表示只编译app模块;
⑤ local.properties:本地项目的配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。
Gradle 是一个项目自动化构建工具,帮助我们做依赖、打包、部署、发布、各种渠道的差异管理等工作。
我们要把整个拥有这么多代码的工程发布运行,最终是要打包为APK文件才能发布,那么多代码要APK打包,以及源代码的编译,这一系列的过程全由Gradle来完成。(类似Java Web编程中的 Maven )
注意:
① Gradle工具的版本配置在gradle\wrapper\gradle-wrapper.properties;
(也可以在File->Project Structure -> Project,在设置界面中修改Gradle Version)
② 不同版本的Android Studio都有对应版本的Gradle版本,当两者版本匹配时,才可运行成功。
- plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
- }
-
- android {
- //指定SDK的版本号
- namespace = "com.example.ilikelearning"
- compileSdk = 34
-
- defaultConfig {
- // 指定该模块的应用编号,也就是App的包名
- // (在安卓开发中,App的包名,就是App的唯一标识,就像App的身份证号码)
- applicationId = "com.example.ilikelearning"
- // 指定App适合运行的最小SDK版本号
- minSdk = 24
- // 表示App最希望在哪个版本的Android运行
- targetSdk = 34
- // 指定App的应用版本号
- versionCode = 1
- // 指定App的应用版本名称
- versionName = "1.0"
- // 单元测试
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
- }
-
- // 指定混淆规则的文件
- buildTypes {
- release {
- isMinifyEnabled = false
- proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
- }
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = "1.8"
- }
- }
-
- // 指定App编译的依赖信息
- dependencies {
- // 官方做的兼容性解决方案
- // 以下为各种依赖项:当我们点击同步时,其就会取互联网下载对应的依赖库
- implementation("androidx.core:core-ktx:1.10.1")
- implementation("androidx.appcompat:appcompat:1.6.1")
- implementation("com.google.android.material:material:1.9.0")
- implementation("androidx.constraintlayout:constraintlayout:2.1.4")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.5")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
- }
每个应用的根目录都必须包含一个AndroidManifest.xml,并且文件名必须固定这样,不可修改。这个文件包含了App的配置信息,系统需要工具里面的内容运行App的代码,显示界面。
① android:allowBackup : 是否允许备份;
② android:icon :指定App在手机屏幕上显示的图片;
③ android:label :指定App在手机屏幕上显示的名称;
④ android:roundIcon :指定App的圆角图标;
⑤ android:supportsRtl :是否支持阿拉伯语 / 波斯语这种从右到左的文字排列顺序;
⑥ android:theme :指定App的显示风格。
application 后面部分还有 activity 节点,这是活动页面的注册声明。只有在AndroidManifest.xml 中正确配置activity节点,才可在运行时访问对应的活动页面。初始配置的 MainActivity 是App的默认主页,因为其 activity 节点内部配置了如下过滤信息。
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
action 节点中设置的 android.intent.action.MAIN 表示该页面是App的入口页面,启动App时会先打开该页面。category 节点设置的 android.intent.category.LAUNCHER 决定了是否在手机屏幕上显示App图标。
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools">
-
- <application
- android:allowBackup="true"
- android:dataExtractionRules="@xml/data_extraction_rules"
- android:fullBackupContent="@xml/backup_rules"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/Theme.ILikeLearning"
- tools:targetApi="31">
- <activity
- android:name=".GirdLayoutStaticActivity"
- android:exported="false" />
- <activity
- android:name=".MainActivity"
- android:exported="true">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
- </manifest>
Activity 是一个应用程序的组件,提供一个屏幕,可以用来与用户交互,完成某项任务。
(即包含可执行操作的界面。)
利用XML标记描绘应用界面,使用Java代码书写程序逻辑 。
① 使用XML文件描绘App界面,可以方便第在Android Studio上预览界面效果;
② 一个界面布局可以被多处代码复用,一个 Java 代码也可以适配多个界面布局。
① 在 layout 目录下创建XML文件;
② 创建与 XML 文件对应的 Java 代码;
③ 在 AndroidManifest.xml 中注册页面配置。
可以直接在java下的包直接new一个Activity,这样就全自动创建了。
自动创建的Java文件:
自动创建的xml文件:
在 AndroidManifest.xml 自动注册页面配置:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。