20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
教材学习内容总结
第二十三章 Android简介
- Android 操作系统是一种多用户的Linux系统,它使用Java作为编程语言。
- Anroid4.4之前,其应用程序在Dalvik的虚拟机上运行,Android5.0及以后版本,其源代码使用ART(Android RunTime)来执行。
- APK表示应用程序包,它是一个基本的zip文件,可使用unzip或Winzip来解压缩。apk文件可以在一台物理设备或模拟器上运行,部署一个Android应用程序很容易。
- 活动(Activity):包含用户交互组件的一个窗口。
- 服务(Service):在后台长时间运行的操作。
- 广播接收者(Broadcast receiver):一个监听器,负责对系统或应用程序声明做出响应。
- 内容提供者(Content provider):管理要和其他应用程序分享的一组数据的一个组件。
- 安卓版本:
第二十四章 初始Android - Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
- Project窗口包括两个主要的节点:app和Gradle Scripts。app节点包含了应用程序中所有的组件。Gradle Scripts节点包含Gradle构建脚本,以供构建Android项目。
- app则又包含三个节点:manifests(包含另一个AndroidManifest.xml文件,对应用程序进行描述),java(包含了所有的Java应用程序和测试类),res(包含了资源文件)。
- Log类带有以不同的日至级别进行日志消息的方法。d(debug)、i(info)、v(verbose)、w(warning)、e(error)、wtf(what a terrible failuer)。
第二十五章 活动 - 活动是包含了用户界面组件的一个窗口,用户可以和这些用户界面组件交互,启动一个活动,往往意味着要显示一个窗口。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说启动一个活动就意味着显示一个窗口。
- Activity中有onPause, onStart, onResume, onDestory, onRestart和onStop这六个方法。如下图所示:
- 修改图标:在res/drawable中保存jepg文件或者png文件,png首选,其支持透明度。
- 修改图标:编辑清单文件manifests的android:icon属性,以指向新的图像,可以使用如下格式修改引用图像文件:@drawable/filename,其中,filename不带扩展名的文件名称。
- 用户从主屏幕选择APP图标时,祝活动通过系统自身而启动,再拥有多个活动的应用程序中,很有可能需要启动另一活动,这时便可以通过调用startActivity方法直接做到。
- 通过传递给意图一个活动类而构造的意图,叫做显式意图。也可以创作一个隐式意图,在这种情况下我们没有指定一个意图类,相反,我们给Intent类的构造方法传递一个动作,让系统来决定启动哪一活动,如果有多个活动可以处理,系统会让用户来进行选择。
第二十六章 UI组件 - Android SDK提供了叫作微件(widget)的众多简单的和复杂的组件。微件有很多例子,比如按钮、文本字段、进度条等。此外,还需选择一个布局来放置UI组件。微件和布局,都在android.view.View里实现。
- Toast是一个小的弹出对话框,用于显示一条消息作为给用户的反馈。Toast并不会代替当前的活动,并且只是占据了一条消息那么大的空间。
- 通知是出现在状态栏里的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者是关闭设备。
教材学习中的问题和解决过程
- 问题1:书上提到的监听器不太了解其具体作用
- 问题1解决方案:监听器是一个存在于View类下的接口,一般以On**Llistener命名,实现该接口需要复写相应的on(View v)方法(如onClick(View v))。
监听器的三种实现方法:
方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)。常见的继承方法如下:
class MyListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
}
}
方法二:实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();
}
});
方法三:利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。
// 方法三,注意需要public方法
public void onButtonClick (View view){
Toast.makeText(MainActivity.this,"you have clicked Button3",Toast.LENGTH_SHORT).show();
}
}
上周考试错题总结
- 错题1及原因,理解情况
An array can be classified as what type of object?
A . dynamic
B . ordered
C . first-in first-out
D . heterogeneous
E . collection
正确答案: E
你的答案: A
一个数组存储一组项目,并被复制为一个集合类型
数组存储多个项目,但它们都必须是相同类型的
- 错题2及原因,理解情况
Which of the following is considered an Abstract Data Type?
A . array
B . reference variable
C . any of the primitive types (e.g., int, double, char)
D . vector
E . all of the above
正确答案: D
你的答案: E
抽象数据类型包含数据结构以及操作和访问数据结构的方法。 在列出的那些中,只有矢量结合了这两者。
- 错题3及原因,理解情况
Abstract Data Types have which of the following object-oriented features?
A . information hiding
B . inheritance
C . polymorphism
D . message passing
E . all of the above
正确答案: A
你的答案: E
所有这些答案都是面向对象功能的类型。所有ADT都利用信息隐藏功能,以便数据结构不能直接从ADT外部操作,但不需要其他面向对象的功能。
- 错题4及原因,理解情况
One operation that we might want to implement on a Stack and a Queue is full, which determines if the data structure has room for another item to be added. This operation would be useful
A . only if the Queue or Stack is implemented using an array
B . only if the Queue or Stack is implemented using a linked list
C . only for a Queue
D . only for a Stack
E . none of the above, a full operation is not useful at all
正确答案: A
你的答案: B
由于该数组是一个静态大小的对象,因此如果它被填充,则应该阻止任何添加类型的操作
- 错题5及原因,理解情况
In a linked list in Java
A . the link is an object
B . the link is a node
C . the link is a reference
D . the link is an int
E . the link is a class
正确答案: C
你的答案: B
在链接列表中,链接是对下一个节点的引用。一个节点的数据部分可能是一个int,以及任何其他类型的数据。
- 错题6及原因,理解情况
A linear data structure
A . always has more than one link per node
B . is sometimes represented as a tree or a graph
C . can have but a single link per node
D . almost always is kept in sorted order either ascending or descending
E . none of the above
正确答案: C
你的答案: E
线性数据结构是一种当您绘制图片时显示为一系列连接节点的结构。
结对及互评
点评过的同学博客和代码
- 本周结对学习情况
- 20172318
- 结对学习内容
- 第23章 Android简介
- 第24章 初始Android
- 第25章 活动
- 第26章 UI组件
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 287/481 | 2/4 | 18/38 | |
第三周 | 320/801 | 3/7 | 22/60 | |
第四周 | 900/1600 | 2/9 | 30/90 | |
第五周 | 807/2407 | 2/11 | 40/130 | |
第六周 | 619/3023 | 2/13 | 40/170 | |
第七周 | 621/3644 | 2/15 | 40/210 | |
第八周 | 805/4364 | 2/17 | 40/250 | |
第九周 | 1787/6211 | 2/19 | 40/290 | |
第十周 | 792/ 7003 | 2/21 | 40/340 | |
第十一周 | 0/ 7003 | 2/23 | 40/380 |
参考资料
-
[Java.for.Android.2nd.CN]