学习安卓安卓应用开发基础课程的心得

        在参加安卓应用开发基础课程的学习过程中,我获得了许多有价值的经验和技能,并对安卓应用开发有了一定的理解。在这个过程中,我掌握了许多基础知识,并成功地开发了一些简单的应用程序。

        在学习安卓应用开发的过程中,我们需要掌握Android基础知识。这包括了Java语言的基础语法和面向对象编程概念、Android操作系统的基本框架和应用程序架构等。我们学习了如何创建和运行安卓应用程序,以及如何使用Android Studio这个开发工具。

        安卓应用开发已经成为了一个非常热门的领域,在这个领域中,最重要的工具之一就是Android Studio。作为一名安卓开发者,我花费了很多时间学习和使用这一工具,并在其中积累了许多经验和心得。在这篇文章中,我想分享我的Android Studio学习心得体会,希望对其他对安卓应用开发有兴趣的人有所帮助。

        首先,我认为学习Android Studio的最好方法是了解它的基础知识。我们可以从官方文档入口开始,了解安装过程和基础的导航、菜单和工具栏。熟悉基础框架后,我们就可以深入研究如何使用XML编写用户界面,并参加相关的教程和视频。通过这些方法,我们可以学习到Android Studio的基础使用,掌握开发应用所需的知识。

        其次,在学习Android Studio的过程中,我们需要重视代码规划和组织,以确保代码的可维护性和可读性。在程序开发过程中,我们要努力遵守最佳实践,为自己和其他人开发者的工作节省时间和成本。我们应该使用构建工具完成构建和打包工作,使用源代码管理工具来保持代码库的同步。此外,我们也要学会使用调试器来分析和解决程序中的问题,保持代码的质量和完整性。

        在学习Android Studio的过程中,学习如何使用主流的开发框架也是非常重要的。这些框架可以帮助我们开发应用程序,同时也可以提高代码品质和可维护性。例如,我们可以使用控件库Android Widget库来创建丰富的用户界面,或者通过使用第三方库来来拓展功能且降低了开发成本。掌握并使用这些框架,可以帮助我们快速完成项目、提高效率并避免犯错误。

        此外,我们还应该从同行的经验中学习并不断完善自己。参加开源项目或者参与福利计划是为数不多的获得这方面经验的重要途径之一,我们可以从中学习到一些非常重要的编程方法学。那些在安卓应用开发领域有多年经验的开发者对新手的启示和指点,对于提高技能和知识储备都很有帮助。

最后,我认为要想在安卓应用开发行业获得成功,强调思维与创造力非常重要。虽然这是一个技术密集型的行业,但是只有学习并灵活运用已有的技能,掌握新的工具和框架等方案,才能确保自己和团队的成功。

        总体而言,Android Studio是一个强大且灵活的工具,该工具提供了许多有用的功能来协助开发高品质的应用程序。通过学习和运用这个工具,我在安卓应用开发领域获得了不少自己的成长。我希望以上这篇Android Studio心得体会能够帮助那些打算进入该领域或者正在努力学习的开发人员。

        在学习安卓应用开发的过程中,我们了解了Android视图。首先,对于初学者来说,理解Android四大组件(Activity、Service、BroadcastReceiver、Content Provider)的概念和使用非常重要。需要了解它们的作用、生命周期、启动方式、通信方式等,同时还需要学会如何在AndroidManifest.xml文件中进行声明和配置。

        其次,需要了解Android应用中一些常见的组件和控件,例如ListView、RecyclerView、ViewPager、Fragment等。这些组件和控件可以帮助我们实现更丰富、复杂的UI交互和数据展示效果。同时,需要了解它们的生命周期和使用技巧,以便在开发过程中更好地运用它们。

再者,需要了解Android中的一些重要概念和框架,例如Android UI主线程、Handler机制、AsyncTask、Intent、Bundle等。这些概念和框架对于理解Android组件的使用和交互是非常有帮助的。

        综上所述,掌握Android组件的使用对于移动应用开发者而言是至关重要的。通过理解组件的概念和使用,学习常见的框架和技巧,以及实践各种开发任务,我们可以更好地开发高质量的移动应用,提高用户体验。

        其中我做了一个安卓计算器的项目,这是我第一次制作安卓的应用程序。这个项目给了我许多有意义的经验和启示,并让我更加了解了安卓应用开发的基础知识。

有如下功能等:

  1. 首次只输入了“运算符 数字 等于”,如: + 4 =,则返回:0 + 4
  2. 点了等号运算之后,再点运算符和数字连续操作,如1 + 2 = 3 + 4 = 7
  3. 点了等号运算之后,重新点数字,需要清除输入框内容,如1 + 2 = 3(结果框显示3),再点4 + 5 = 9(结果框显示9)
  4. 只输入“数字 运算符 等于”,如:9 * =,则返回:9 * 9 = 81

效果1

 效果2

代码

package com.example.dwy_0411_calculator;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener {//定义输出文本框变量private EditText jieguo;//定义输入文本框变量private EditText neirong;//创建Button对象,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_chu, btn_cheng, btn_jia, btn_jian, btn_dian, btn_yuliu, btn_deng;private boolean flag;//清空标识@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 绑定对象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_dian = findViewById(R.id.bnt_dian);//小数点btn_jia = findViewById(R.id.bnt_jia);//加btn_jian = findViewById(R.id.bnt_jian);//减btn_cheng = findViewById(R.id.bnt_cheng);//乘btn_chu = findViewById(R.id.bnt_chu);//除btn_deng = findViewById(R.id.bnt_deng);//等于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_dian.setOnClickListener(this);btn_jia.setOnClickListener(this);btn_chu.setOnClickListener(this);btn_jian.setOnClickListener(this);btn_cheng.setOnClickListener(this);btn_deng.setOnClickListener(this);btn_qk.setOnClickListener(this);btn_tg.setOnClickListener(this);btn_tg.setOnClickListener(this);btn_yuliu.setOnClickListener(this);}@Overridepublic 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_dian://再次输入的时候判断输入框,清空前面,再把点击的按钮放在输入框上if (flag) {flag = false;str = "";neirong.setText("");jieguo.setText("");}//添加到neirong框neirong.setText(str+((Button) view).getText());break;case R.id.bnt_jia:case R.id.bnt_jian:case R.id.bnt_cheng:case R.id.bnt_chu://再次输入的时候判断输入框,清空前面,再把点击的按钮放在输入框上if (flag) {flag = false;str = "";neirong.setText("");}// contains 意思是是否包含该字符串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_deng:getResult();break;}}public void getResult() {String input=neirong.getText().toString();//当输入框是null或者""时我们不进行操作if (input== null || input.equals(" ")) {return;}//计算出结果,必须知道输入框是否有操作符,判断条件就是前后是否在空格,否则不进行操作if (!input.contains(" ")) {//没有运算符,所以不用运算return;}//点击等号的时候,清空标识设置为true,但是如果之前有的话,设置成falseif (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);//计算开始,定义一个double变量接收结果,全局定义if (op.equals("+")) {  //加dou1= d1+d2;} else if (op.equals("-")) { //减dou1= d1-d2;} else if (op.equals("*")) { //乘dou1= d1 * d2;} else if (op.equals("/")) {  //除//除数为0不计算dou1= d1 / d2;}//之前把他强转为double类型了,如果没有小数点,我们就是int类型if (d2 == 0) {Toast.makeText(MainActivity.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是空str2=str1;double d1 = Double.parseDouble(str1);double d2 = Double.parseDouble(str2);//计算开始,定义一个double变量接收结果,全局定义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("")) {  //第三种情况:str1是空//这种情况就需要判断了,因为此时str1 = 0;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("/")) {  //除//除数为0不计算dou1= 0;}//之前把他强转为double类型了,如果没有小数点,我们就是int类型if (!str2.contains(".")) {int i = (int) dou1;str1="0";neirong.setText(str1+op+str2);jieguo.setText(i + "");} else {  //如果有小数点jieguo.setText(dou1+ "");}} else {  //假设最后一种情况,他们两个都是空//全部清空掉jieguo.setText("");}}}

        

        在做这个项目的过程中,我遇到了许多难题。例如,如何将加减乘除号识别出来等。在此过程中,我学习到了解决问题和解决困难的方法。我尽可能使用了最简洁的代码进行实现,并对代码进行了多次的调试和测试,最终成功实现了计算器的基本功能。

        这个计算器项目给了我一个非常好的机会,让我能够将所学知识应用于实际项目中,同时也有助于我发现我的不足和需要加强的地方。在制作过程中,我学习了如何有效地规划和设计代码。

        接下来,我们学习了如何使用Fragment在应用程序中实现更复杂的布局。首先,Fragment是一个自包含的模块,可以插入到活动(Activity)中,从而形成一个用户界面的一部分。这使Fragment成为在应用程序中组织UI的有效方法。例如,在一个相对较大的应用程序中,我们可以使用Fragment来分割活动UI成更小的部分,每个部分都由一个独立的Fragment控制和管理。其次,在学习Android Fragment的过程中,我了解了Fragment的生命周期,以及如何使用FragmentManager来控制Fragment的创建、暂停、恢复、启动和停止等工作。通过这些基础知识的学习和掌握,我们可以更好的控制Fragment的功能,更好的理解Fragment的工作原理和机制。另外,在Fragment的设计和开发中,我们还需要注意一些细节问题。例如,在处理Fragment与Activity生命周期的交互时,我们需要确保托管活动能够适当地响应Fragment的变化。此外,为了确保Fragment精度和可维护性,我们需要根据需要创建多个Fragment,而不是将所有UI组件都添加到同一个片段中。这可以增加代码的可读性和可扩展性,更好的保持代码的健康程度。

        最后,我还学习了如何使用SQLite数据库进行数据存储,首先,要学习SQLite数据库,需要具备一定的SQL语言基础。因为SQLite数据库就是以SQL语言为核心的,所以掌握SQL语言对于学习SQLite非常重要。需要了解SQL语句的基本语法、数据类型、表和列等概念。此外,还需要了解SQLite的特性与限制,例如SQLite只支持事务,不支持外键约束等。

        其次,需要掌握Android SQLite数据库的基本操作。Android提供了SQLiteOpenHelper和Cursor等类,用于实现对SQLite数据库的创建、升级、查询和更新等操作。在学习时,可以通过实践来加深对这些类的理解,例如创建一个数据库,插入数据,查询数据等。

        当然,我们在编写Android应用时,并不总是需要直接使用SQL语句操作数据库。常见的做法是使用ORM框架,例如GreenDAO、Room等,这些框架可以帮助我们更方便地操作数据库。但是,了解SQL语言和基本的数据库操作对于理解ORM框架的实现机制和排查问题都是非常有帮助的。最后,由于SQLite数据库是一种轻量级的关系型数据库,它的存储容量是有限的。因此,在设计和使用时需要考虑如何优化数据库的结构和操作,以减小存储空间的占用和提高性能。

        通过这个课程,我获得了许多知识和技能,包括了Android操作系统知识、UI组件和网络数据库的使用等等,这些知识和技能在未来将会帮助我开发。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部