考点
第二章、第三章(核心点)
第二章最后讲了一个线程,必须要会
第四章了解
第五第六第七了解
第九章三个存储:简单存储会写,文件存储,数据库存储
第十章不会考很多,核心也是线程
#安卓 #移动应用开发 #考试
选择题
Logcat
e error
i info
w warnning
d debug
MVC
m 模型:存储数据和代码
v 视图:显示用户页面和图像
c 控制器:处理用户输入
ViewGroup
ViewGroup 和TextView是View 的子类
音效:
MeadialPlayer是用来播放大型音乐适合用来播放游戏背景音乐
soundpool:适合用来播放小型音效,可以同时播放多种音效
网络访问:
开线程,加权限
开放手机联盟OHA:
产品商、电信运营商、软件厂商、芯片制造商、手机软件商、手机硬件商
Text类六个:
Textview EditView Button ImageButton GroupButtion checkbox
简答题:
Android的特点,与ios比较:
安卓不局限与操作系统,支持多个开发工具,使用java语言,因为市面上有多个厂商
所以安卓的兼容性较低、ui界面交互仍需要用户同时使用触屏和按键。
四层android模型:
程序应用层、程序应用框架层、运行环境和工具、Linux内核层
android5.1更新了什么
全新的material design 页面
支持64位
强化网络和连接支持
优化Android tv
目录结构:
src:存放要java源代码
gen:存放编译器自动生成的代码
libs:存放第三方包
res:存放安卓项目所以使用的素材和资源
四大组件:
activity:是安卓应用的显示层,显示可视化的用户页面,并且接受用户与页面交互得到的页面事件。
service:是用于没有用户界面的,并且长时间运行在后台的应用,可以提供service接口供其他程序调用
broadcasereceiver:用来接受广播消息的组件,不包含在任何页用户页面里可以调用activity和notification来告诉用户收到重要消息。
contentprovider:提供一种标准的用户共享数据的机制,其他程序可以通过contentprovider来访问该程序的私有数据,同时安卓系统内提供一些内置的contentprovider,能够提供一些重要数据信息
六大页面
线性布局:
放入的控件按照水平或者垂直来排列,一行或者一列只能存放一个元素,若内容排到容器外面将不会显示
相对布局:
更多来描述组件与组件之间的位置关系,每一个组件都包含了很多的关于位置的属性,当一个属性移动时,其他与他关联的属性也一起移动。
表格布局:是不规则不布局,是动态定义多少行和多少列
网状布局:是规则的布局,事先定义好多少行,多少列的单元格,然后接着自己定义元素填入到单元格里面去。
绝对布局:用x,y表示所有组件
帧布局:以左上角位参考,对父容器的左边和上边,元素可以重叠显示,即后元素可以遮盖前者,一起共同显示。
程序填空:
编程
xml编程:
<Textview
android:layout_width="match_partent"
android:layout_height="warp_match"
android:id="@+id/XXX"
android:text="XXXX"/>
Spinner:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
List<String> list = new ArrayList<String>(); // 注意
list.add("a");
list.add("b");
list.add("c");
ArrayAdapter<String> adapter = new ArrayAdapter<String> (
this, android.R.layout.simple_spinner_item, list
);
spinner.setAdapter(adapter);
### onclick
```java
Button button=(Button)findViewById(R.id.XX);
button.setOnClickListener(new View.OnClickListener{
public void OnClick(View v){}
});
intent单向
我方:
Intent intent=new Intent(XXXX.this,XXX.class);
intent.putExtra("XXX",x);
startActiviyt(intent);
对方:
Intent intent=getIntent();
String x=intent.getStringExtra("x");
intent双向:
我方:
Intent intent=new Intent(XXXX.this,XXX.class);
intent.putExtra("XXX",x);
startActiviytForResult(intent,1);
....
protected void onActivityResult(int requestcode,int repuestcode,Intent data){
if(...){
...
}
}
对方:
Intent intent=getIntent();
String a=intent.getStringExtra("x");
....
setResult(1,intent);
finish();
线程
public XXX extent Activity{
private Handler handle =new Handler(){
public void handleMessage(Message msg){}
};
protected void onCreate(Bunlde b){
super.onCreate(b);
setContentView(R.id.XXX);
new Thread(new Runnable{
public void run(){
}
}).start();
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fuxi">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Fuxi">
<activity
android:name=".MainActivity4"
android:exported="false" />
<activity
android:name=".MainActivity3"
android:exported="false"></activity>
<activity
android:name=".MainActivity"
android:exported="false"></activity>
<activity
android:name=".MainActivity2"
android:exported="true"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
sharedPerference 简单存储
SharedPerference sp=getSharedPreference("XXXX",MODE_PRIVATE);
sp.getString(" 键名"," 默认值 ");
sp.putString("","");
SQLite
SQLiteDatabase db = openOrCreateDatabase("user.db", Context.MODE_PRIVATE, null);
db.insert(); // 增
db.delete(); // 删
db.query(); // 查
db.update(); // 改
// TABLE_NAME 表名
// Values 键值对,一大堆数据
// WHERE username=xxx
Text视图的基本类型:
TextView,EditView,Button,ImageButton,CheckBox,GroupButton.
Toast
Toast.makeText(this,"",Toast.LENGTH_LONGE).show();
对话框
AlterDialog.Bulider a=new AlterDialog.Bulider(this);
a.setTitle("");
a.setMessage("");
a.show();