赞
踩
安卓是2008年发布的一个移动端的操作系统
手机的操作系统:1.iOS 2.android 3.塞班 4.Windows Phone
1.1Android是基于Linux的开源操作系统,主要用于智能手机和平板电脑等移动设备
1.2 SDK: software development kit 软件开发工具包
1.3 Android系统的体系结构:
1.应用程序层
2.应用程序框架层
3.系统运行库层(android系统运行时库)
4.Linux内核层
1.4 安卓的安装包 .apk 安卓的运行文件 app
Android Studio(基于IDEA)
Eclipse(现在不支持了,弃用)
前台显示:XML(可拓展样式文件)
前台逻辑:Java (Kotlin也可以 [.kt])
每一个Android应用程序都运行在一个Dalvik虚拟机示例上,每一个虚拟机示例都是一个独立的进程空间,多个进程之间可以通信
Java开发环境:JDK
打包文件(可以不配置): Gradle
Android SDK
一个项目可以包含多个功能单元,每一个功能单元对应一个模块
1.Android应用模块
2.库模块
3.Google Cloud 模块
R.java文件是什么?它有什么作用?
R.java是系统自动生成的一种资源索引文件,对于开发者而言,这个文件是可读不可写的文件
创建activity,service,BoardReceiver,Provider或者声明权限的时候使用
1.activity 活动:最常用的一种,是用户与应用程序交互的窗口
一个Android应用程序可以有多个activity,一个activity通常对应一个独立的窗口
2.ContentProvider 数据提供者 :
是一种全新的数据共享模式,如果一个窗口需要对外提供数据,就可以发布一个数据提供者和资源uri ,提供统一的数据访问接口
3.Service 服务:
没有用户界面,也不能和用户交互的一种特殊的组件,可以在后台运行,它既不是进程也不是线程
4.BroadcastReceiver广播接收器:全局监听器,是一种单向信息传递机制
2.9 Android应用程序的程序入口点:android.app.Application包中的onCreate()
3.1 样式资源和主题资源的区别:
1.样式文件作用于单个view组件
2.主题作用于整个应用程序所有的Activity,或对指定的Activity起作用‘
3,主题定义的格式应该是窗口外观的格式
GUI:用户界面,图形图像接口
android:id 组件ID
android:layout_width 显示宽度
android:layout_height 显示高度
android:background 用来定义背景色和背景图片
宽度和高度的属性:match_parent 填充父容器的空白空间
3.3事件处理---点击
Onclick
OnclickListener
RelativeLayout:相对于其他控件或者容器决定控件的位置;
android:gravity 中的center_vertical 垂直 center_horizontal 水平
LinearLayout:使控件以竖直或者水平方向排列;
TableLayout:使控件以表格形式排列;
GirdLayout:能使控件交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由
布局的开发;
FrameLayout:使控件按照创建顺序在屏幕的左上角重叠显示;
AbsoluteLayout:通过绝对的坐标控制控件摆放的位置。
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
<EditTextandroid:id="@+id/plain_text_input"android:layout_height="wrap_content"android:layout_width="match_parent"android:inputType="text"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<Button
android:id="@+id/supabutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I'm a button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="@drawable/baseline_android_24"
android:drawablePadding="4dp"
android:drawableTint="#ff0000"
android:text="I'm a button with an icon" />
</LinearLayout>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="A tiny Android icon"
android:src="@drawable/baseline_android_24"
app:tint="#ff0000" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox android:id="@+id/checkbox_meat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Meat" />
<CheckBox android:id="@+id/checkbox_cheese"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cheese"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/pirates" android:onClick="onRadioButtonClicked"/> <RadioButton android:id="@+id/radio_ninjas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/ninjas" android:onClick="onRadioButtonClicked"/> </RadioGroup>
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_image" android:contentDescription="@string/my_image_desc" />
定义: 为用户提供一个交互的接口 把数据信息展示给用户,提供数据操作的入口,控制页面的跳转,调用后台其他功能的组件
Tips:一个Android程序可以有多个activity组成,只能有一个activity
生命周期函数:
onCreate() | 启动activity调用 |
onStart() | 当即将可见的时候调用 |
onRestart() | 重启时候调用 |
onResume() | 与用户可交互时候调用 |
onPause() | 被暂停时候调用 |
onStop() | 当activity不可见的时候调用 |
onDestory() | 被摧毁时调用 |
生命周期:
如何引用xml显示文件?:
在onCreate()方法中,setContentView(R.layout.xml文件)
Activity的启动方法:
1.显示启动
有返回值和无返回值的方法
无返回值:
Intent intent = new Intent(当前activity.this,目标activity.class);
startActivity(intent);
有返回值:
final int REQUEST_CODE = 1;//定义请求码
Intent intent = new Intent(当前activity.this,目标activity.class);
startActivity(intent,REQUEST_CODE);
2.隐式启动
在清单文件中我们注册activity的地方添加<intent-filter>
<intent-fliter>
<action android:name = “android.intent.action.VIEW”>
……
</intent-fliter>
2、 请简要说明 Activity 的三种状态以及不同状态使用的方法。
Activity 三种状态分别是:
本质上是一个全局监听器
分类;应用广播,系统广播
Android主要采用异步广播机制来处理组件的信息传递
实现广播和接收Intent的步骤
①销毁定义BroadCaseReceiver广播接收器 ②注册BroadCaseReceiver广播接收器 ③发送广播 ④执行 ⑤销毁
分类
普通广播: 通 过 context. sendBroadcast 或 者 context. sendBroadcastAsUser发送给当前系统中所有注册的接受者,也就是 只要注册了就会接收到;
有序广播:接收者按照优先级处理广播,并且前面处理广播的接受者 可以中止广播的传递,一般通过context. sendOrderedBroadcast或 者context. sendOrderedBroadcastAsUser;
粘性广播:可以发送给以后注册的接受者,即系统会将前面的粘性广 播保存在AMS中,一旦注册了与已保存的粘性广播符合的广播,在注 册结束后会立即收到广播,一般通过context. sendStickyBroadcast 或context.sendStickyOrderedBroadcast来发送,从字面上看,可以 看出来粘性广播也分为普通粘性广播和有序粘性广播。网络切换的广播就是一种粘性广播
不是进程也不是线程
执行无须与用户交互且需要长期执行的功能
当系统资源紧张时,service不会被系统优先终结
分类:本地服务,远程服务
生命周期:onCreate(),onStartCommand(),onBind(),onRebind(),onUnbind()onDestory()
不同应用程序共享数据的唯一方式
URI:通用资源标识符
格式:content://<authority>/[<dataPath>/<id>]
ContentProvider提供的数据操作方法类似于操作一个数据库,便于结构化操作
一个应用程序可以创建多个数据提供者,它们必须继承ContentProvider类,并重写他们的接口方法
重要的类:主要涉及类的增删改查
Intent是一个动作的完整描述,包含了产生组件、接收组 件和传递数据信息。
Intent是Android应用内不同组件之间的通讯载体。Intent是同一或不同应用程序之间的一种运行 时绑定(runtime binding)机制,它能在程序运行的 过程中连接两个不同的组件。
Intent启动Activity、Service和BroadcastReceiverd :
Intent分类
◆ 显式Intent ◆ 隐式Intent
Intent属性
Component组件 Action动作 Category类别 Data数据 Type数据类型 Extras扩展信息 Flags标志位
显式Intent启动Activity
通过Intent来显式地指定要打开的
Activity Intent intent = new Intent(MyActivity.this, MyOtherActivity.class); startActivity(intent);
隐式Intent启动Activity
Intent downloadIntent = new Intent(a.this, b.class);
startActivity(downloadIntent);
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。