Android Studio学习体会

本文介绍了Android Studio作为Android开发的官方IDE,提供了丰富的功能和工具,包括集成开发环境、实时布局预览、模拟器支持、强大的插件系统等。尽管学习成本相对较高,但对于Android开发者而言,它能显著提升开发效率并带来更好的应用体验。通过实例展示了Android Studio在开发过程中的应用,强调了其在解决编译错误、库依赖冲突等方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android是一种基于Linux操作系统的开源移动设备操作系统。它由Google开发,并且在全球范围内广泛使用。Android可以运行在智能手机、平板电脑、电视等移动设备上,同时也可以支持其他类型的设备。Android最初是由安迪·鲁宾和其同事们创建的,于2007年首次发布。随着时间的推移,Android不断地发展壮大,扩展了功能和特性,目前已经成为全球领先的移动操作系统之一。

Android Studio是谷歌官方提供的一个针对Android应用程序开发的集成开发环境(IDE),旨在提高开发人员的生产力。它是一种基于IntelliJ IDEA平台开发的软件,支持Java和Kotlin语言进行开发。Android Studio提供了许多有用的功能来帮助开发人员创建、测试、调试和发布高质量的Android应用程序。它集成了许多工具,如代码编辑器、调试器、UI设计工具、性能分析工具、代码混淆工具等,为开发人员提供了全面的开发支持。

Android Studio是目前Android平台最主流的开发工具之一,官方支持度极高,同时也得到众多开发者的青睐。借助Android Studio,开发者可以更加高效地进行Android开发,为用户创造更好的应用体验。

总之,Android Studio 提供了完整的开发工具和环境,使得 Android 应用的开发更加容易和高效。同时,它也不断更新和改进,保持着与移动应用开发最新技术的接轨。

  1. 集成度高:Android Studio 整合了现在 Android 开发所需要的多个工具、框架等,并且可以方便地安装和升级这些工具。

  2. 多种语言支持:Android Studio 支持 Java 和 Kotlin 两种编程语言,同时也支持 C++ / NDK 应用程序的开发。

  3. 实时布局预览:Android Studio 可以在编辑 XML 布局文件时使用 Layout Editor 的实时预览功能,预览最终渲染的界面。

  4. 模拟器支持:Android Studio 内置 Android 调试器和 Android 设备模拟器,可以很方便地进行调试和测试。

  5. 强大的插件系统:Android Studio 支持自定义插件,用户可以通过插件丰富和扩展 IDE 功能。

  6. 免费并开源:Android Studio 是免费且开源的,在开发者社区得到广泛的支持和帮助。

综上所述,Android Studio是一款优秀的开发工具,适用于Android平台的开发,具有集成性强、功能丰富、设计友好等特点。如果您正在学习或者计划开发Android应用程序,强烈建议您去尝试使用它。


 下面我们使用它来完成一个简单的计算器

        java部分:

package com.example.xjf_0321;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Calculator extends AppCompatActivity implements View.OnClickListener {

    private EditText jieguo;

    private EditText neirong;

    private Button btn_0, btn_1, btn_2, btn_9, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8,
            btn_qk, btn_tg, btn_chuyu, btn_chengfa, btn_jiahao, btn_jianyu, btn_xiaoshudian, btn_yuliu, btn_dengyu;
    private boolean flag;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculator);


            neirong = findViewById(R.id.shuchu);
            jieguo = findViewById(R.id.jieguo);
            btn_0 = findViewById(R.id.bnt_0);
            btn_1 = findViewById(R.id.bnt_1);
            btn_2 = findViewById(R.id.bnt_2);
            btn_3 = findViewById(R.id.bnt_3);
            btn_4 = findViewById(R.id.bnt_4);
            btn_5 = findViewById(R.id.bnt_5);
            btn_6 = findViewById(R.id.bnt_6);
            btn_7 = findViewById(R.id.bnt_7);
            btn_8 = findViewById(R.id.bnt_8);
            btn_9 = findViewById(R.id.bnt_9);
            btn_xiaoshudian = findViewById(R.id.bnt_xiaoshudian);
            btn_jiahao = findViewById(R.id.bnt_jiahao);
            btn_chuyu = findViewById(R.id.bnt_chuyu);
            btn_jianyu = findViewById(R.id.bnt_jianyu);
            btn_chengfa = findViewById(R.id.bnt_chengyu);
            btn_dengyu = findViewById(R.id.bnt_dengyu);
            btn_qk = findViewById(R.id.bnt_qk);
            btn_tg = findViewById(R.id.bnt_dl);
            btn_yuliu = findViewById(R.id.bnt_yuliu);

            btn_0.setOnClickListener(this);
            btn_1.setOnClickListener(this);
            btn_2.setOnClickListener(this);
            btn_3.setOnClickListener(this);
            btn_4.setOnClickListener(this);
            btn_5.setOnClickListener(this);
            btn_6.setOnClickListener(this);
            btn_7.setOnClickListener(this);
            btn_8.setOnClickListener(this);
            btn_9.setOnClickListener(this);
            btn_xiaoshudian.setOnClickListener(this);
            btn_jiahao.setOnClickListener(this);
            btn_chuyu.setOnClickListener(this);
            btn_jianyu.setOnClickListener(this);
            btn_chengfa.setOnClickListener(this);
            btn_dengyu.setOnClickListener(this);
            btn_qk.setOnClickListener(this);
            btn_tg.setOnClickListener(this);
            btn_yuliu.setOnClickListener(this);
            btn_tg.setOnClickListener(this);

        }

        @Override
        public void onClick(View view) {
            String str = neirong.getText().toString();
            String str1 = jieguo.getText().toString();
            System.out.println(str1);
            switch (view.getId()) {
                case R.id.bnt_0:
                case R.id.bnt_1:
                case R.id.bnt_2:
                case R.id.bnt_3:
                case R.id.bnt_4:
                case R.id.bnt_5:
                case R.id.bnt_6:
                case R.id.bnt_7:
                case R.id.bnt_8:
                case R.id.bnt_9:
                case R.id.bnt_xiaoshudian:

                    if (flag) {
                        flag = false;
                        str = "";
                        neirong.setText("");
                        jieguo.setText("");
                    }

                    neirong.setText(str+((Button) view).getText());
                    break;

                case R.id.bnt_jiahao:
                case R.id.bnt_jianyu:
                case R.id.bnt_chengyu:
                case R.id.bnt_chuyu:

                    if (flag) {
                        flag = false;
                        str = "";
                        neirong.setText("");
                    }

                    if(str1!=null&&!str1.equals("")){

                        neirong.setText(str1+ " "+ ((Button) view).getText() + " "+str);
                    }else {

                        neirong.setText(str+ " "+ ((Button) view).getText() + " ");
                    }

                    break;
                case R.id.bnt_dl:

                    if(   str != null && !str.equals("")){
                        neirong.setText(str.substring(0, str.length() - 1));
                    }else {
                        jieguo.setText("");
                    }
                    break;


                case R.id.bnt_qk:
                    flag = false;
                    str = "";
                    neirong.setText("");
                    jieguo.setText("");
                    break;

                case R.id.bnt_dengyu:
                    getResult();
                    break;

            }


        }

        public void getResult() {
            String input=neirong.getText().toString();


            if (input== null || input.equals(" ")) {
                return;
            }

            if (!input.contains(" ")) {

                return;
            }

            if (flag) {
                flag = false;
                return;
            }
            flag = true;


            String str1 = input.substring(0, input.indexOf(" "));
            String op = input.substring(input.indexOf(" ")+1, input.indexOf(" ") + 2);
            String str2 = input.substring(input.indexOf(" ") + 3);

            double dou1 = 0;
            if (!str1.equals("") && !str2.equals("")) {
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);


                if (op.equals("+")) {
                    dou1= d1+d2;
                } else if (op.equals("-")) {
                    dou1= d1-d2;
                } else if (op.equals("*")) {
                    dou1= d1 * d2;
                } else if (op.equals("/")) {


                    dou1= d1 / d2;

                }


                if (d2 == 0) {
                    Toast.makeText(Calculator.this,"除数不能为零",Toast.LENGTH_SHORT).show();
                    jieguo.setText("");
                }else {
                    if (!str1.contains(".") && !str2.contains(".") && !op.equals("/")) {
                        int i = (int) dou1;
                        jieguo.setText(i + "");
                    } else {
                        jieguo.setText(dou1+ "");
                    }
                }
            } else if (!str1.equals("") && str2.equals("")) {
                str2=str1;
                double d1 = Double.parseDouble(str1);
                double d2 = Double.parseDouble(str2);

                if (op.equals("+")) {  //加
                    dou1= d1+d2;
                } else if (op.equals("-")) {
                    dou1= d1-d2;
                } else if (op.equals("*")) {
                    dou1= d1 * d2;
                } else if (op.equals("/")) {
                    dou1= d1 / d2;
                }
                if (!str1.contains(".") && !str2.contains(".") && !op.equals("/")) {
                    int i = (int) dou1;
                    jieguo.setText(i + "");
                } else {
                    jieguo.setText(dou1+ "");
                }
            } else if (str1.equals("") && !str2.equals("")) {

                double d3 = Double.parseDouble(str2);
                if (op.equals("+")) {
                    dou1= 0 + d3;
                } else if (op.equals("-")) {
                    dou1= 0 - d3;
                } else if (op.equals("*")) {
                    dou1= 0;
                } else if (op.equals("/")) {

                    dou1= 0;
                }

                if (!str2.contains(".")) {
                    int i = (int) dou1;
                    str1="0";
                    neirong.setText(str1+op+str2);
                    jieguo.setText(i + "");
                } else {
                    jieguo.setText(dou1+ "");
                }
            } else {

                jieguo.setText("");
            }


        }



    }


接下来是layout部分:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".Calculator">

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <EditText
            android:id="@+id/shuchu"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:hint="显示输出结果"/>
        <EditText
            android:id="@+id/jieguo"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:hint="显示输入的内容"/>
        <GridLayout
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:columnCount="4"
            android:rowCount="5"
            >
            <Button
                android:id="@+id/bnt_qk"
                android:layout_width="145dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:layout_columnSpan="2"
                android:text="C"/>
            <Button
                android:id="@+id/bnt_dl"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="DEL"/>
            <Button
                android:id="@+id/bnt_chuyu"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:layout_gravity="fill"
                android:text="/"/>
            <Button
                android:id="@+id/bnt_7"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="7"/>
            <Button
                android:id="@+id/bnt_8"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="8"/>
            <Button
                android:id="@+id/bnt_9"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="9"/>
            <Button
                android:id="@+id/bnt_chengyu"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="*"/>
            <Button
                android:id="@+id/bnt_4"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="4"/>
            <Button
                android:id="@+id/bnt_5"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="5"/>
            <Button
                android:id="@+id/bnt_6"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="6"/>
            <Button
                android:id="@+id/bnt_jianyu"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="-"/>
            <Button
                android:id="@+id/bnt_1"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="1"/>
            <Button
                android:id="@+id/bnt_2"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="2"/>
            <Button
                android:id="@+id/bnt_3"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="3"/>
            <Button
                android:id="@+id/bnt_jiahao"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="+"/>
            <Button
                android:id="@+id/bnt_yuliu"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="预留"/>
            <Button
                android:id="@+id/bnt_0"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="0"/>
            <Button
                android:id="@+id/bnt_xiaoshudian"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="."/>
            <Button
                android:id="@+id/bnt_dengyu"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_marginLeft="5dp"
                android:text="="/>



        </GridLayout>
    </GridLayout>

</LinearLayout>


代码完成我们来测试一下:

这个程序使用了一个TextView来显示计算结果,其他按钮则用于输入数字和操作符。在每次点击操作符按钮(加、减、乘、除)时,记录下当前的操作数1和对应的操作符。在点击“=”按钮时,将计算得到的结果进行显示,并清空操作数和操作符。同时提供“清除”按钮,以便实现更多计算。


作为一名开发者,我在使用 Android Studio 开发项目的过程中得到了以下体会:

  1. 首先是学习成本比较高,对于初学者来说,需要掌握 Java 或 Kotlin 编程语言,以及 Android 系统框架的相关知识,理解 Gradle 插件的使用等。但是一旦熟悉了这些技术,就可以更容易地进行 Android 应用程序的开发。

  2. Android Studio 提供了很多功能强大的工具,如布局编辑器、代码分析、性能分析、调试器等,这些工具可以使开发人员更加高效和精准地进行开发工作,从而提高开发效率。

  3. Android Studio 的模拟器支持非常好,通过内置的模拟器可以快速测试应用程序,以便在真机测试前进行一些必要的调试。

  4. 在使用 Android Studio 进行项目开发过程中,经常会遇到各种各样的问题,比如各种编译错误、库依赖冲突、Gradle 版本更新等等,这时候需要有耐心和技巧去解决问题,同时也需要不断学习和探索最佳实践。

总的来说,Android Studio 是一个非常强大的开发环境,虽然需要一定的学习成本,但是一旦掌握了它的使用技巧,可以让 Android 应用程序的开发更加高效和有成就感。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值