一.什么是andiroid?
andiroid本意是"机器人",是google 2007年发布的基于linux平台的手机操作系统
二.系统架构
Linux Kernel :linux内核
Libraries:类库
android runtime:运行环境
application framework:应用构架
application:应用
三.DVM与JVM
1.主要差别:
DVM:基于寄存器,编译和运行都更块些
JVM:基于栈,编译和运行都会慢些
2.字节码的区别:
DVM:执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小
JVM:执行. class文件的字节码
3.运行环境的区别:
DVM:一个应用都运行在一个单独的虚拟机
JVM:所有的应用都运行在同一个JVM
四.项目的组成结构
1.主界面MainActivity类(点击应用图标启动的界面),继承自Activity类
重写onCreate方法:在当前Activity对象创建的时候自动调用
回调方法:不是我们调用的,是系统在一定条件下自动调用(基本都以on开头 onXX)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//调用父类做一些默认的初始化方法
super.onCreate(savedInstanceState);
//设置窗口要显示的内容视图(界面/布局) R:resource
//指定布局文件在R中对应的变量,加载布局文件最终显示到窗口中
setContentView(R.layout.activity_main);
}
}
五.SDK(软件开发工具包)
顾名思义,就是将一系列工具组合起来,比如自动补全,自动编译,调用模拟器运行等都是SDK的功劳
六.应用编译打包过程
七.手机尺寸的相关概念
1.手机的尺寸:屏幕对角线的长度,单位为英寸(2.54cm)
2.手机的分辨率:屏幕上能显示像素的数量,一般用长方向上数量*宽方向上数量 来表达
3.像素(PPI):每英寸能够显示的像素数
4.DPI:可与PPI相互替换
5.手机密度(Density):以160ppi为基准,即像素密度为160ppi时,density为1
6.dp与px的比较?
(1)以px为单位,在差的手机上会变大,在好的手机上会变小
(2)以dp为单位则不会变
7.dp和sp的比较?
用户在系统中设置字体大小
(1)使用sp,设置有效果
(2)使用dp,设置没效果
8.总结
在布局视图宽高尽量用match_parent/warp_content(如果用特定值,使用dp)
文本大小要使用sp
八.第一个程序
关于Android studio的安装配置网上有很多教程,这里不说了
(1)首先AndroidManifest.xml下配置了主Activity为MainActivity
<activity android:name=".MainActivity">
<!--让当前activity成为主activity-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--让图标出现在界面-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(2)找到MainActivity类,发现它加载了叫activity_main的配置文件
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//调用父类做一些默认的初始化方法
super.onCreate(savedInstanceState);
//设置窗口要显示的内容视图(界面,/布局) R:resource
//指定布局文件在R中对应的变量,加载布局文件最终显示到窗口中
setContentView(R.layout.activity_main);
}
}
(3)找到activity_main.xml,发现它的文本引用了名为message的string
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"
android:text="@string/message"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
(4)到res/values/string.xml下,修改对应String(就不写hello world)
<resources>
<string name="message">欢迎来到Android的世界!</string>
</resources>
效果: