安卓【Android studio】超全超详细的保姆级开发笔记

安卓【Android studio】超全超详细的保姆级开发笔记

一、环境配置

1. Gradle系统环境变量

变量名:GRADLE_USER_HOME
变量值:E:\software\Android\gradle(根据自己的路径配置)

在这里插入图片描述

2. 设置Gradle镜像,下面以阿里云镜像为例(不设置会等超长时间)
1. 给Gradle bin文件下载,设置阿里云镜像

路径:项目根目录/gradle/wrapper/gradle-wrapper.properties文件
distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle/gradle-版本号-bin.zip

2. 给Gradle依赖下载,设置阿里云镜像

路径:项目根目录/settings.gradle文件,按照下面设置镜像:

pluginManagement {
   
   
    repositories {
   
   
        // 使用阿里镜像源
        maven {
   
    url 'https://maven.aliyun.com/repository/google' }
        maven {
   
    url 'https://maven.aliyun.com/repository/central' }
        maven {
   
    url 'https://maven.aliyun.com/repository/gradle-plugin' }

        google {
   
   
            content {
   
   
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
   
   
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
   
   
        // 使用阿里镜像源
        maven {
   
    url 'https://maven.aliyun.com/repository/google' }
        maven {
   
    url 'https://maven.aliyun.com/repository/central' }
        google()
        mavenCentral()
    }
}

二、Hello World(开始新建项目,研究语法、代码)

1. 项目目录结构
  • project
    – .gradle:Gradle构建脚本目录;
    – app:主模块目录,存放应用程序的主要代码文件和资源文件,项目开发的核心区域;
    – build:编译,打包目录;
    – gradle:Gradle构建配置‌目录,包含 Gradle Wrapper 配置文件,用于自动化下载Gradle;
    – build.gradle ‌:模块级构建脚本,用于配置依赖库、编译选项等,需根据项目需求调整;
    – settings.gradle:模块配置‌,指定项目包含的模块或子项目;

drawable目录通常位于项目的res文件夹中,用于存放应用中使用的图形资源。根据屏幕密度不同,可能包含以下子目录:
drawable-ldpi:低密度屏幕(如320 DPI)
drawable-mdpi:中等密度屏幕(如480 DPI)
drawable-hdpi:高密度屏幕(如640 DPI)
drawable-xhdpi:更高密度屏幕(如720 DPI)
drawable-xxhdpi:更高密度屏幕(如1080 DPI)

2. Activity生命周期

Activity生命周期图示

3. Activity语法
序号 语法 注释
1 setContentView() 加载布局文件(如 XML 定义的界面)或动态创建视图,将内容展示在 Activity 窗口中,入参示例:R.layout.activity_main
2 findViewById() 根据ID查找标签,返回标签,入参是XML文件中设置的ID
3 setText() 标签设置文本的方法
5 Intent 意图对象,有多个构造方法可以指定跳转视图
6 startActivity() 触发入参的意图对象
7 setTextSize() 设置文本大小,单位是sp(专门用来设置字体大小,关联系统字体大小)
8 finish() 结束当前Activity的生命周期并释放其资源
8 setVisibility(Int isVisible) 是否可见,View.VISIBLE(可见),View.GONE(不可见)
Intent

(1)Intent组成部分

设置方法 注释
setComponent 指定意图的来源和目标
setAction 指定意图的动作
setData Uri,指定动作要操作的数据路径
addCategory 指定意图的操作类别
setType 指定消息的数据类型
putExtras 指定扩展信息
setFlags 指定活动的启动标志

(2)显式Intent:
直接指定来源活动和目标活动,属于精确匹配

// 1. 构造方法中直接指定
Intent intent = new Intent(this, NextActivity.class);

// 2. 调用意图对象的setClass指定
Intent intent = new Intent();
intent.setClass(this, NextActivity.class);

// 3. 调用意图对象的setComponent方法指定
Intent intent = new Intent();
ComponentName component = new ComponentName(this, NextActivity.class);
intent.setComponent(component);

(3)隐式Intent:

Intent类的系统动作常量名 常量值 注释
ACTION_MAIN android.intent.action.MAIN App启动入口
ACTION_VIEW android.intent.action.VIEW 向用户显示数据
ACTION_SEND android.intent.action.SEND 分享内容
ACTION_CALL android.intent.action.CALL 直接拨号
ACTION_DIAL android.intent.action.DIAL 准备拨号
ACTION_SENDTO android.intent.action.SENDTO 发送短信
ACTION_ANSWER android.intent.action.ANSWER 接听电话

注意:使用隐式Intent跳转Activity时,目标Activity的android:exported属性要为true

(4)数据传递、接收

// SendActivity,向ReceiveActivity传递数据
intent.setClass(this,ReceiveActivity.class);
Bundle bundle = new Bundle();
bundle.putString("send_data","send_data");
intent.putExtras(bundle);
startActivity(intent);
// ReceiveActivity,接收SendActivity传递的数据
Bundle extras = getIntent().getExtras();
String send_data = extras.getString("send_data");

(5)结果反馈

// 发送请求的Activity
public class ActRequestActivity extends AppCompatActivity implements View.OnClickListener {
   
   
    private ActivityResultLauncher<Intent> register;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_act_request);
        // 按钮绑定点击事件
        findViewById(R.id.request_btn).setOnClickListener(this);

        // 接收响应
        register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
   
   
            /**
             * 接收响应的方法
             * @param res
             */
            @Override
            public void onActivityResult(ActivityResult res) {
   
   
                // 响应状态码
                int resultCode = res.getResultCode();
                if(resultCode == Activity.RESULT_OK){
   
   
                	// 获取响应数据
                    Intent data = res.getData();
                    Bundle extras = data.getExtras();
                    String response = extras.getString("response");
                }
            }
        });
    }

    @Override
    public void onClick(View view) {
   
   
        Intent intent = new Intent();
        if(view.getId() == R.id.request_btn){
   
   
            intent.setClass(this,ActResponseActivity.class);
            Bundle bundle = new Bundle();
            bundle.putString("request_content","How are you?");
            intent.putExtras(bundle);
            // 跳转界面,并传递数据
            register.launch(intent);
        }
    }
}
// 返回响应的Activity
public class ActResponseActivity extends AppCompatActivity implements View.OnClickListener {
   
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_act_response);
		// 按钮绑定点击事件
        findViewById(R.id.response_btn).setOnClickListener(this);

        // 获取传递来的消息
        Bundle extras = getIntent().getExtras();
        String requestContent = extras.getString("request_content");
    }

    @Override<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值