安卓开发日记1
本篇内容:
解决安卓工程文件慢的问题。
初识安卓工程的各项配置文件。
大致了解默认配置文件的参数配置。
文章目录
前言
新建工程文件
新建空项目==>将左上角的Android切换成Project查看整个项目结构。

如果你的网足够好他会自动给你下载gradle,再使用gradle构建工程项目,下载所需的依赖。
注意
由于android官方下载gradle的源在外面,所以基本上大部分人下载会很慢而且很容易断掉,而且他给你下载好后还要通过gradle下载一些依赖,这些依赖也在外面,所以也会很慢。
为了解决这个问题,我们要进行两步,
1.下载gradle的.zip文件直接放到.gradle中。
2.配置gradle,把gradle的下载路径配置为国内镜像源。
在file\settings\Build,Ex…\Build Tools中更改设置,将User Gardle from 从’gradle-wrapper.properties’file改为’Specified location’

找和你android版本可以对应的gradle版本下载
gradle国内官方连接
腾讯镜像源下载
注意是下载(gradle-版本号-bin.zip)的文件
然后解压出来
打开C:\Users(你的电脑账户)\ .gradle\wrapper\dists…
里面可能会有乱码样子的那种文件,因为你在创建Android工程文件后AndroidStudio如果没有找到gradle就会尝试在这里下载,这一串乱码其实应该就是他下载的时候的文件校验码。

点进去后的文件就是没下完的gradle文件,将gradle文件解压出来的(gradle-版本号)文件替换放进去就行。
Tip:
实测可以把这个(gradle-版本号)的文件放在和乱码文件同级的位置,然后把乱码文件删了,
你的GradleHome只要选到(gradle-版本号)的文件也能成功构建。
(还可以改全局环境变量然后把gradle放在其他盘减少运行盘的内存消耗,
因为随着项目的依赖增大他占的内存也会增多)。
具体看你的需求,这里篇幅有限就先不bb改全局变量的具体步骤了,
大体就是创建GRADLE_HOME全局环境变量,然后变量值对应你在其他盘的路径仓库
文件夹中解压出来的gradle-版本号文件夹,再把最上面Gradle user home改成仓库文件夹,
下面的Use Gradle from改为gradle-版本号文件
然后打开文件夹选取解压出来的gradle-7.3.3

最终更改为如下图所示,第一步就完成了:

然后将你的settings.gradle文件中的内容改成下面国内镜像源。第二步完成。
pluginManagement {
repositories {
maven { url=uri ("https://jitpack.io") }
maven { url=uri ("https://maven.aliyun.com/repository/releases") }
// maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url=uri ("https://maven.aliyun.com/repository/google") }
maven { url=uri ("https://maven.aliyun.com/repository/central") }
maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url=uri ("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url=uri ("https://jitpack.io") }
maven { url=uri ("https://maven.aliyun.com/repository/releases") }
// maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url=uri ("https://maven.aliyun.com/repository/google") }
maven { url=uri ("https://maven.aliyun.com/repository/central") }
maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url=uri ("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
}
}
rootProject.name = "first_demo" //这里是包名,包名不一样的注意记得改这里
include ':app'
然后还需要下载安卓的虚拟机,下载这玩意有个巨坑,TM的直接给你放C盘去了,而且还不提醒你,而且这玩意大小随随便便8,9G,而且后面还会随着项目增加。
右侧栏Device Manage->Create device->选择你想要创建的机型。

创建完成后,我们直接修改他的位置
在C:\Users\(你的电脑账户).android\avd中找到.avd的文件夹,把这个文件夹移到你想放的其他盘的位置,然后更改.ini文件中的path路径指向你放的位置。
例如,我把它放在了我放android的程序的其中一个新建文件夹中。

工程目录结构

1.资源文件…/main/res/…
drawable:存储所有与图形相关的资源文件。如图标,背景等视觉元素。
layout:定义用户界面(UI)的布局结构。即页面组件的布局结构.
values:存储应用所需的各类静态值资源,通过 XML 统一管理。
values内的.xml文件:
strings.xml:定义文本内容。
colors.xml:定义颜色值。
styles.xml:定义主题和样式。
dimens.xml:定义尺寸值。
themes.xml:扩展 Material Design 主题。
xml:存放通用的 XML 配置文件(非布局或图形资源),如(网络,设置等)。
其余前缀名跟上诉某些名字相同但加了-后缀有所变化的文件夹,是不同版本和不同尺寸下的资源文件夹。
2…main/java/com.example.first_demo/…
com.example.包名
默认MainActivity.java
package com.example.first_demo; //包声明
import androidx.appcompat.app.AppCompatActivity; //导入android中的AppCompatActivity类
import android.os.Bundle; //导入Bundle,用于存储和传递数据
public class MainActivity extends AppCompatActivity { //继承AppCompatActivity
@Override//重写Activity的生命周期
protected void onCreate(Bundle savedInstanceState) {//onCreate()函数当该Activity类创建时调用
super.onCreate(savedInstanceState);//初始化父类
setContentView(R.layout.activity_main);//设置布局UI,R.layout.activity_main
}
}
Bundle saveInstanceState,用于保存销毁前的临时数据。首次运行为NULL,再次运行会保留上次销毁前通过saveInstanceState保存的数据。
3.安卓配置文件 AndoridManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <!--android命名空间-->
xmlns:tools="http://schemas.android.com/tools" <!--开发工具包命名空间-->
package="com.example.first_demo"> <!--包名-->
<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.First_demo" <!--应用默认主题-->
tools:targetApi="31"> <!--目标API级别-->
<activity
android:name=".MainActivity"<!--Activity类名(java类名)-->
android:exported="true"><!--是否允许启动此Activity-->
<intent-filter><!--意图过滤器,定义Activity的启动方式-->
<action android:name="android.intent.action.MAIN" /> <!--表示这里是该程序的主入口-->
<category android:name="android.intent.category.LAUNCHER" /><!--表示这里是该程序在系统的启动图标-->
</intent-filter>
</activity>
</application>
</manifest>
AndoridManifest.xml是程序软件的核心配置文件, Android 系统启动和管理应用的唯一入口。它定义了应用的基本信息、组件、权限、硬件需求等。
所有四大组件(Activity、Service、BroadcastReceiver、ContentProvider)必须在此注册,否则系统无法识别它们。
4.builde.gradle
一个安卓工程文件中有两个build.gradle,分别负责项目级配置和模块级配置。
根目录gradle:
/ Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
// 声明插件但不立即应用(不生效)
id 'com.android.application' version '7.2.1' apply false
id 'com.android.library' version '7.2.1' apply false
}
task clean(type: Delete) {
// 指定删除目标路径:根项目目录下的build文件夹
delete rootProject.buildDir
}
app下模块级gradle:
plugins {
id 'com.android.application' //声明这是一个应用模块
}
android {
//编译设置
compileSdk 32 //使用编译的sdk版本
defaultConfig { //默认设置
applicationId "com.example.demo1" //应用唯一标识(包名)
minSdk 28 //能兼容的最小安卓版本
targetSdk 32 //目标适配的安卓版本
versionCode 1 //内部版本号
versionName "1.0" //用户可见的版本号
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
// 设置Java版本为8(兼容旧设备)
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
//声明第三方库的依赖或模块
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
每当我们添加依赖时,会看到dependencies中增加相应的添加的implementation语句。
5.settings.gradle gradle配置文件
pluginManagement { //管理插件的下载来源(仓库)
repositories {//定义插件依赖的仓库
maven { url=uri ("https://jitpack.io") }
maven { url=uri ("https://maven.aliyun.com/repository/releases") }
// maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url=uri ("https://maven.aliyun.com/repository/google") }
maven { url=uri ("https://maven.aliyun.com/repository/central") }
maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url=uri ("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement { //管理全局依赖仓库
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)//禁止模块单独定义仓库
repositories {//定义全局依赖仓库
maven { url=uri ("https://jitpack.io") }
maven { url=uri ("https://maven.aliyun.com/repository/releases") }
// maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url=uri ("https://maven.aliyun.com/repository/google") }
maven { url=uri ("https://maven.aliyun.com/repository/central") }
maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url=uri ("https://maven.aliyun.com/repository/public") }
google()
mavenCentral()
}
}
rootProject.name = "first_demo" //设置跟项目名称
include ':app' //定义项目模块。该项目包含了哪些模块。
settings.gradle 是 Gradle 构建系统的核心配置文件,主要用于定义项目的整体结构和全局配置。它在项目的初始化阶段被读取和执行,决定了哪些模块(子项目)参与构建,并管理项目的全局设置。
总结
安卓的工程文件主要分为资源文件,代码文件和配置文件。
资源文件往往是背景图片,UI,布局等元素。
代码文件实现程序的具体逻辑。
其中配置文件中又有安卓程序的配置文件和gradle配置文件,gradle配置文件常常是开发的时候使用的用于加载外部依赖项,负责整个构建流程(编译、打包、签名、混淆等)。安卓程序的配置文件配置安卓程序的入口和程序所包含的各模块。

浙公网安备 33010602011771号