安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发,其中包含操作系统,中间件和核心应用等。
1、Application
最上层是面向用户的Application(应用程序),包括电话程序、联系人程序、浏览器、地图、Email等。
2、Application Framework
第二层是Application Framework,为开发人员提供访问核心组件所使用的API,包含了丰富的View组件、Content Providers(内容提供器)用来访问另一个应用程序的数据(如联系人),或者共享它们自己的数据、Resource Manager(资源管理器)提供对资源的访问(如本地字符串,图形,布局文件等)、Notification Manager(通知管理器)、Activity Manager(活动管理器)等。
3、Libraries
第三层是系统运行库,包含程序库和Android运行库。程序库中包含了一些C/C++库,通过应用框架为开发者提供服务,如:Libc(从BSD继承来的标准C系统函数库)、媒体库、SGL(2D图形引 擎)、3D libraries(基于OpenGL ES 1.0 APIs实现,可以使用硬件或软件3D加速)、SQLite(数据库引擎)等等。
4、Linux Kernel
最下面一层是Linux核心,Android的核心系统依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。 Android的 Linux kernel也不是GNU/Linux。Android将驱动程序移到userspace,使得Linux driver与Linux kernel分开。
1.下载JDK
下载安装——环境配置——用cmd检查是否安装成功
JDK在当初学习java的时候就已经安装过,所以这一步没有遇到什么问题。
2.下载安装SDK
SDK的安装用了老师给的安装包,也成功的进行了安装。
3.Android Studio
4模拟器的安装
1.手机连接到电脑上
2.打开开发者模式,打开USB调试选项,选择传输文件选项
3.电脑下载手机助手,在Android studio调试窗口找到自己的手机进行运行。代码运行成功之后,就可以在电脑手机助手上看到运行结果。
1.点击 +create virtual Device,选择你想要设置的模拟器,这里我们选择phone手机的。
2.选择手机型号,不同的手机型号对应不同的大小和分辨率。
3.选择好手机型号之后选择API的版本。
4.完成,运行即可。
1.安卓一个项目就是一个project,一个项目中可以包含多个app,一个module对应一个app。做开发时,只需建一个project,之后只需要建module即可。
2.Android项目结构
(Android视图下)
manifests —— AndroidManifest.xml
配置文件,里面含有app的名称,版本号,过滤器(决定那个activity是入口)等,以及activity,一个activity就是一个页面。
java —— com.example ——MainActivity
Java文件,所有的事件,操作。
res—— layout—— activity_main.xml
布局文件,负责界面设计。
可以在设计界面操作,也可以在代码界面。
res ——drawable
在旧版本里大部分情况下存放图片。
res —— mipmap
存放图片
(ps:总的来说,app图标(launcher icon) 必须放在mipmap目录中,并且最好准备不同分辨率的图片,否则缩放后可能导致失真;而应用内使用到的图片资源,放在drawable目录亦或是mipmap目录中是没有区别的,该准备多个分辨率的还是要准备多个分辨率,如果只想使用一份切图,那尽量将切图放在高密度的文件夹中。)
re—— values
关于颜色的定义:colors.xml
关于字符串的定义:strings.xml
关于样式的定义:styles.xml
Project 视图下)
app/build/ app模块build编译输出的目录
app/build.gradle app模块的gradle编译文件
app/app.iml app模块的配置文件
app/proguard-rules.pro app模块proguard文件
build.gradle 项目的gradle编译文件
settings.gradle 定义项目包含哪些模块
gradlew 编译脚本,可以在命令行执行打包
local.properties 配置SDK/NDK
MyApplication.iml 项目的配置文件
External Libraries 项目依赖的Lib, 编译时自动下载的
1..Android UI布局:布局管理器,listview列表视图,GridView网络视图。
2..Android中提供了7种布局管理器:帧布局管理器,水平线性布局管理器,垂直线性布局管理器,表格布局管理器,表格行布局管理器,网络布局管理器,相对布局管理器。
3..在一个Android应用程序中,用户界面通过view和viewgroup构造。Android中有很多种view和viewgroup,他们都继承自view类。
4..Android布局管理器可以很方便地控制各个组件的位置和大小,同时根据屏幕大小,管理容器内的控件,自动适配组件在手机屏幕中的位置。
1.FrameLayout(帧布局),这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置。
2.FrameLayout(帧布局)默认是按左上角(0,0)开始排布,在帧布局下的每一个控件都是以画面的形式进行呈现
最开始定义的控件出现在最下方,最后定义的控件出现在最上方,一般用于手机联系人的导航显示字母、帧动画等内容。
3.
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ff00" android:text="你好"/> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="30dp" android:background="#ff0000" android:text="页面"/> </FrameLayout>
1. LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向(HORIZONTAL)或竖向(VERTICAL)的方式排列,按照相对位置来排列所有的子控件及引用的布局容器。超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个控件或者是引用的布局容器。
2.LinearLayout线性布局的相关属性:
android:orientation |
布局方向:"vertical"垂直线性布局,"horizontal"水平线性布局 |
android:id |
为控件指定相应的ID |
android:text |
指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符 |
android:grivity |
指定控件的基本位置,比如说居中,居右等位置 |
android:textSize |
指定控件当中字体的大小 |
android:background |
指定该控件所使用的背景色,RGB命名法 |
android:width |
指定控件的宽度 |
android:height |
指定控件的高度 |
android:padding |
指定控件的内边距,也就是说控件当中的内容 |
android:singleLine |
如果设置为真的话,则将控件的内容在同一行当中进行显示 |
android:layout_weight |
默认值为0,layout_weight属性可以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。 |
3.用XML方式实现线性布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background" > <Button android:text="按钮1" android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="按钮2" android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content"/>
4.用Java代码实现线性布局
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this);// 创建现行布局管理器 LinearLayout.LayoutParams params = new LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);// 设置线性布局参数 layout.setOrientation(LinearLayout.VERTICAL); TextView txt = new TextView(this); LinearLayout.LayoutParams txtParams = new LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);// 设置组件参数 txt.setLayoutParams(txtParams);//将文本组件添加到线性布局当中 txt.setText(Hello!);//设置文件组件的文本 txt.setTextSize(20);//设置文本大小 layout.addView(txt, txtParams); addContentView(layout, params); } }
1. TableLayout是采用表格的形式对控件的布局进行管理的,在TableLayout布局管理器之中,要使用TableRow进行表格的行控制,之后所有的组件要在TableRow中增加。
2. 表格布局相关属性
android:collapseColumns |
设置指定的列为collapse,该列会被隐藏 |
android:shrinkColumns |
设置指定的列为shrinkable,该列的宽度进行收缩,自适应父类容器的大小 |
android:stretchColumns |
设置指定的列为stretch,该列会被拉伸,填充满表格的空白区域 |
1.相对布局是通过相对定位的方式让控件出现在布局任意位置;在相对布局中如果不指定控件摆放的位置,那么控件都会被默认放在RelativeLayout的左上角。因此要先指定第一个控件的位置,再根据一个控件去给其他控件布局。
2.相对布局相关属性
android:layout_centerHrizontal |
水平居中 |
android:layout_centerVertical |
垂直居中 |
android:layout_centerInparent |
相对于父元素完全居中 |
android:layout_alignParentBottom |
位于父元素的下边缘 |
android:layout_below |
位于元素的下方 |
android:layout_alignTop |
该元素的上边缘和某元素的的上边缘对齐 |
android:layout_marginBottom |
底边缘的距离 |
1. ListView(列表视图)是Android中常用的UI组件之一,它将以垂直列表的形式列出要显示的列表项目。一般来说ListView都是和Adapter(适配器)一起配合使用,数组数据或者数据库数据都将通过Adapter把值传递给ListView组件。
2. Adapter实际上是UI组件和数据源之间的一座桥梁,Adapter把数据从数据源中得到后将传递给Adapter View(适配器视图),Adapter View则将数据呈现在如Spinner(列表选择框)、ListView(列表视图)、GrideView(网格视图)等UI组件中。实际上ListView、GrideView是Adapter View的子类,他们通常和一个Adapter在一起使用,Adapter负责收集外部数据,然后再把数据项以View的形式显示在界面上。
3. Android提供了好几种类型的Adapter,他们都是Adapter的子类,常用的Adapter类型有:ArraryAdapter(数组适配器)、Base Adapter(基本适配器)、CursorAdapter(游标适配器)、SimpleCursorAdapter(简单游标适配器)、SpinnerAdapter(列表适配器)和WrapperListAdapter(封装列表适配器)。不同的适配器将用于绑定不同类型的数据,比如ArraryAdapter就适合绑定数组数据。
4. ListView(列表视图)的常用属
属性 |
描述 |
android:id |
用于设置ListView的名称 |
android:divider |
用于为ListView设置分割条,既可以用颜色分割,也可以用Drawable资源分割 |
android:dividerHeight |
用于设置分割条的高度 |
android:entries |
用于通过数组资源为ListView指定列表项 |
android:footerDividersEnabled |
用于设置是否在footer view之前绘制分割条,默认为true,设置为false时,表示不绘制。需要通过ListView(列表视图)提供的addFooterView()方法为ListView(列表视图)添加footer view |
1. GridView(网格视图)是Android中常用的UI组件之一,它是按照行、列分布的方式来显示多个组件的,通常用于显示图片或图标等。
2. 网格视图常用属性
属性 |
描述 |
android:id |
用于设置GridView的名称 |
android:columnWidth |
用于设置列的宽度 |
android:gravity |
用于设置对齐方式 |
android:horizontalSpacing |
用于设置各元素之间的水平间距 |
android:numColumns |
用于设置列数,其属性值通常大于1,如果值较大比如100或者为auto_fit,则将在可用空间中显示尽量多的列数。 |
android:stretchMode |
用于设置拉伸模式,其中属性可以为: none:不拉伸 spacingWidth:仅拉伸元素之间的间距 columnWidth:仅拉伸表格元素本身 spacingWidthUniform:表格元素本身、元素之间的间距一起拉伸 |
android:verticalSpacing |
用于设置各元素之间的垂直间距 |
属性 |
描述 |
android:id |
用于设置文本框的名称 |
android:capitalize |
用于设置输入英文字母是否自动变为大写字母 l 0表示不自动变为大写字母 l 1表示一句话的首字母自动变为大写字母 l 2表示每个单词的首字母自动变为大写字母 l 3表示所有字母自动变为大写字母 |
android:cursorVisible |
当可以编辑时,光标是否显示 l true表示光标显示 l false表示光标不显示(默认值) |
android:editable |
如果设置为true,表示文本框可以进行编辑 |
android:fontFamily |
用于设置文本框的字体样式 |
android:gravity |
用于设置文本框的对齐方式,可选值有top、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical和clip_horizontal等。这些属性值也可以同时设定,各属性值之间用竖线隔开。例如要指定组件靠右下角对齐,可以使用属性值right|bottom |
android:hint |
用于设置当文本框中文本内容为空时,默认显示的提示文本 |
android:inputType |
用于指定当前文本框显示内容的文本类型,其可选值有textpassword、textEmailAddress、phone和date等,可以同时指定多个,使用“|”竖线隔开。 |
android:maxHeight |
用于设置文本框的最大高度 |
android:maxWidth |
用于设置文本框的最大宽度 |
android:minHeight |
用于设置文本框的最小高度 |
android:minWidth |
用于设置文本框的最小高度 |
android:password |
用于设置当文本框可以编辑时,里面的文本是否显示为隐藏密码样式“.”,显示为true,不显示为false |
android:phoneNumber |
用于设置当文本框可以编辑时,里面的文本是否显示为电话号码样式,显示为true,不显示为false |
android:text |
用于指定文本框中显示的文本内容 |
android:textAllCaps |
用于设置文本框中的英文字母是否全部变为大写字母,变成大写字母为true,不变成大写字母为false |
android:textColor |
用于设置文本框内文本的颜色,其属性值可以是"#rgb"、 "#argb"、 "#rrggbb"或 "#aarrggbb" |
android:textColorHighlight |
用于设置文本框内文本的颜色是否高亮 |
android:textColorHint |
用于设置文本框提示信息的颜色,其属性值可以是"#rgb"、 "#argb"、 "#rrggbb"或 "#aarrggbb" |
属性 |
描述 |
android:textIsSelectable |
用于设置当文本框不可以编辑时,文本框中的文字是否可以被选中,true为可以,false为不可以 |
android:textSize |
用于设置文本框中文本的字体大小,其属性由代表大小的数值和单位组成,其单位可以是px、pt、sp和in等 |
android:textStyle |
用于设置文本框中文本的样式,可以同时指定多个,使用“|”竖线隔开 l 0表示正常 l 1表示加粗 l 2表示斜体 |