一.什么是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>
效果: