写在前面:仅供参考,一般是自己留着看的,如有错误,敬请指正
第1章 Android基础入门
-
Linix内核层为Android设备的各种硬件提供了底层的驱动
-
Android运行库中包含了Dalvik虚拟机
-
java虚拟机和Dalvik虚拟机的区别:
1️⃣编译后的文件不同:Java虚拟机运行的是.class字节码文件,而Dalvik虚拟机运行的则是其专有的.dex文件。2️⃣基于的架构不同:java虚拟机是基于栈的架构,栈是一个连续的内存空间,取出和存入的速度比较慢,而Dalvik是基于寄存器的架构,寄存器是CPU上的一块缓存,寄存器的存取速度远大于内存的存取。
-
默认情况下,Dalvik虚拟机给每一个应用程序最多分配16MB内存
-
创建项目成功后,Android Studio一般会生成两个默认文件,一个是布局文件activity_main.xml文件,一个是MainActivity.java文件。前者可以在布局中添加任意组件,后者可以实现功能代码。
-
MainActivity继承自AppCompatActivity,当Activity执行时首先会调用Oncreate()方法,在该方法中通过setContentView()将布局文件转换成View对象,展示在界面上。
-
每个Android程序创建成功后,都会生成一个清单文件AndroidManifest.xml文件,该文件是整个项目的配置文件,程序中定义的四大组件(Activity、BroadcastReceiver、Service、ContentProvider)都需要在该文件中注册
-
res用于存放程序所用到的资源,例如图片、布局文件、字符串等。drawable目录是用于存放图片(一般尺寸较大)及xml文件,layout目录用于存放布局文件,mipmap目录通常用于存放应用程序图标,values目录用于放置定义的字符串。
-
要发布到网上供他人使用,需要将文件打包成APK(Android Package),一般有两种build type,debug和release两种,其中debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序调试。release称为发布版本,往往进行了各种优化,以便于用户更好地使用。
第2章 Android UI开发
-
创建:选中layout文件并单击右键,一次选中[New] ->[XML] ->[Layout XML File]选项
-
布局的类型
1️⃣LinearLayout,主要以水平和垂直方式来显示界面中的控件。修改orientation的属性,当空间水平(horizontal)排列时,显示顺序从左到右;当控件垂直(vertical)排列时,显示顺序依次为从上到下。android:orientation="" 2️⃣RelativeLayout,相对布局是通过相对定位的方式制定控件位置,即以其他控件或父容器为参照物摆放控件的位置。在设计相对布局时要遵循控件之间的依赖关系,后放入控件的位置依赖于先放入的控件。
3️⃣FrameLayout是Android中最为简单的一种布局,该布局为每个加入其中的控件创建一个空白区域(称为一帧,每个空间占据一帧)。采用帧布局方式设计界面时,所有控件都默认显示在屏幕左上角,并按照先后放入的顺序重叠播放,先放入的控件显示在最底层,后放入的控件显示在最顶层。
4️⃣TableLayout是以表格形式排列控件的,通过行与列将界面划分为多个单元格,每个单元格都可以添加控件。表格布局需要和TableRow配合使用,每一行都由TbaleRow对象组成,因此TableRow的数量决定表格行数。而表格的列数是由包含最多控件的TableRow决定的。
stretch_Columns:指定表格布局的第n列被拉伸
layout_column:属性指定当前控件位于第几列5️⃣AbsoluteLayout是通过指定x,y坐标来控制每一个控件位置的。使用绝对布局需要精确地计算控件大小,同时还要考虑手机屏幕尺寸和分辨率,在开发中这是非常低效的,因此不推荐使用。
android:layout_x = “”//设置x坐标
android:layout_y = “”//设置y坐标 -
TextView:显示文本信息
-
EditText:接受用户输入信息
-
Button:相应用户的一系列点击事件
- 通过findViewById()方法初始化空间,然后为按钮添加click()方法触发点击事件,并通过setText()方法修改按钮的文本信息。
- 在Activity中实现OnclickListener接口。接下来修改MainActivity中的逻辑代码。
1️⃣
... Button = (Button)findViewById(R.id.Button1); Button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Button.setText("按钮1"); } }); ...
2️⃣
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ ... Button = (Button)findViewById(R.id.Button1); Button.setOnClickListener(this); @Override public void onClick(View v){ switch(v.getId()){ case R.id.Button1: Button.setText("按钮2"); break; } } ... }
显然方法二在按钮数量较多的时候可以降低代码的重复率
写于 2020/12/19 0:50,太晚了,预期明天回来接着更后面的,睡了:)