20172329 2017-2018-2 《程序设计与数据结构》第十一周学习总结
教材学习内容总结
Java和Android开发学习指南 第23章 Android简介
一、4种Android应用程序组件
1、活动 ( Activity ) : 包含用户交互组件的一个窗口 。
2、服务 ( Service ) : 在后台长时间运行的操作 。
3、广播接收者 (Broadcast receiver ) : —个监听器 , 负责对系统或应用程序声明做 出响应 。
4、内容提供者 ( Contentprovider ) : 管理要和其他应用程序分享的一组数据的一个 组件
二、intent
Android 编程中的另一个重要的概念是意图(intent),意图是一条消息 ,发送给系统或另一个应用程序 ,以要求执行一个动作 。可以使用意图来做很多不同的事情 ,但通常使用意图来启动一个活动 ,启动一个服务或者发送条广播 。每个应用程序都必须有一个清单( manifest ),描述该应用程序 。清单以 XML 文件的形式给出 , 其中 包含了如下的一项或 几项 :
1、运行该应用程序所需的最小APILevel 。
2、应用程序的名称 。这个名称将会显示在设备上 。
3、当用户在其手机或平板电脑的主屏幕上触碰该应用程序的图标的时候 ,将会打开的第一个活动 ( 窗口 ) 。
4、是否允许从其他的应用程序调用你的 应用程序组件 。为了促进代码复用 ,只要应用程序的开发者同意分享 ,就可以从其他应用程序调用该应用 程序的功能 。例如 ,可以从需要照片和视频拍摄功能的应用程序中 ,调用默认的Camera 应用程序 。
5、对于在目标设备上安装的应用程序 ,用户必须保证一组什么样的许可 。如果用户不能保证所有必须的许可 ,将不会安装该应用程序 。
Java和Android开发学习指南 第24章 初识Android
一、下载和安装Android Studio
1、首先运行android-studio-ide-173.4720617-windows
,开始安装
注:经过多次尝试,必须将Android Stuidio的安装路径放于C盘的一个空文件夹里,并且,所建的文件夹名字不能带有ACSⅡ字符,比如中文。
2、开始进行配置文件
(1)我们第一次打开AS需要我们配置一定的文件他才会顺利为我们打开,首先,当安装好以后呈现出这个页面以后:
(2)点击新建一个项目(这里要注意一个定义,这里我们建的项目是一个整体的项目,新手小白可能会出现建立新项目就是新建一个app的想法,新建一个模块是可以在这个项目里面建立的,所以这里建议将这个项目不要命名为一个程序的名字,要么以后后悔都来不及,建议命名为“AndroidProject”之类的名字,以免区分其他程序项目)
(3)接下来应该会呈现这样一个界面
默认选择以后,到了重头戏:
到了这个页面的时候,需要选择cancel
,因为在我的试验里,假如选择Setup Proxy
,它会一直重复这个过程直到我们自己崩溃,当我们选择cancel
以后,就紧接着继续后续操作,刚刚没有选择cancel
的过程是我们需要下载成功制造一个app需要的配置文件,比如:grade等等。当我们下载继续一路next
以后,就完成了我们的配置工作。(如果是按照上述完全一样,会成功,假如有一步不对,就会出现大大小小的问题)
二、创建应用程序
Java和Android开发学习指南 第25章 活动
一、活动的生命周期
1、活动是android.app. Activity
类的一个实例。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说,启动一个活动就意味着要显示一个窗口。应用程序所创建的第一个窗口,叫作主活动(main activity),它充当应用程序的入口点。
2、当用户从主屏幕选择一个应用程序图标的时候,系统将会查找应用程序的主活动并启动它。启动一个活动涉及实例化活动类(这在清单中的activity元素的android:name属性中指定),并且调用其生命周期方法。
二、修改应用程序图标
1、在res/drawable中保存一个jepg文件或者png文件。png文件是首选的,因为这个格式支持透明度。
三、启动另外一个活动
1、通过调用startActivity方法而直接做到,比如startActivity(intent)
,其中intent就是android.content.Intent类的一个实例。
Java和Android开发学习指南 第26章 UI组件
一、概览
1、Android SDK提供了叫作微件(widget)的众多简单的和复杂的组件。微件的例子,包括很多按钮、文本字段和进度条等。此外,还需要选择一个布局来放置UI组件。微件和布局,都在android.view.View类中实现。视图是占据屏幕的一个矩形区域。View类是最重要的Android类型之一。
二、Toast
1、Toast是一个小的弹出的对话框,用于显示一条消息作为给用户的反馈。Toast并不会代替当前的活动,并且只是占据了一条消息那么大的空间。
2、andriod.widget.Toast类是创建Toast的模板。要创建一个Toast,调用它唯一的构造方法,接受Context作为一个参数:
public Toast(android.context.Context context)
Toast还提供了两个静态的makeText方法来创建Toast的实例。该方法的两种重载形式的签名如下:
public static Toast makeText(andriod.content.Context context,int rezourceId,int duration)
public static oast makeText(andriod.content.Context context,java.lang.CharSequence text,int duration)
三、通知
1、通知是出现在状态栏的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者关闭设备。
2、通知是android.app.Notification
的实例。创建一个通知的最方便的方法,是使用一个叫做Builder的嵌套类,可以通过传递一个Context来实例化该类。然后,可以在该Builder上调用build方法来创建一个Notification。
例如:Notification n = new Notification.Builder(context).build();
Java和Android开发学习指南 第27章 布局
一、概览
1、布局是android.view. ViewGroup的 子类,该类反过来又派生自android.view. View类。ViewGroup是一个特殊的视图,它可以包含其他的视图,可以在一个布局文件中声明布局,或者在运行时通过编程添加布局。
如下是Android中的一些布局。
(1)LinearLayout。将所有子视图以相同的方向(或者水平地或者垂直地)对齐的一个布局。
(2)RelativeLayout。根据子视图的一个或多个同级视图的位置来排列它的一个布局。
(3)FrameLayout。将每一个子视图放在另一个子视图顶部的一种布局。
(4)TableLayout。将子视图按照行和列来组织的一种布局。
(5)GridLayout。将子视图放置到一个栅格中的一种布局。
二、LinearLayout
1、LinearLayout是根据其orientation属性,将子视图水平地或垂直地排列的一种布局。LinearLayout是最 容易使用的布局。
Java和Android开发学习指南 第28章 监听器
一、概览
1、使用活动中的一个视图进行的用户交互,可能会触发一个事件,而且你可以编写当事件发生的时候所执行的代码。包含了响应某一个事件的代码的类,叫作事件监听器(event listener)。
2、要让程序响应某一个事件,需要为该事件编写一个监听器。做到这一点的方式,是实现嵌入在 android.view.View类中的一个接口。
教材学习中的问题和解决过程
- 问题1:
第一次安装AS 的时候,看了网上安装AS的教程,在遇到就是在过程中写到的这个:
一直都在点Setup Proxy
,在这里弄了好久。
- 问题1解决方案:
在上文中也提到过,我点击了Cancel
,在后面配置的时候自动就下载了grade等配置文件。 - 问题2:
在第一次打开的时候,R就是红色的,显示R文件丢失,如图
- 问题2解决方法:
1、首先有两种解决策略:
(1)如果急用或是创建过的项目需要修改:
可以先选择为android,然后点开Gradle Scripts下的gradle.properties
并在最后一行添加
android.enableAapt2=false
(2)永久禁用
假如有这样的问题,说明安装路径里面可能有中文,所以把它移到一个新的文件夹下面,而且这个文件夹名字不能有中文就可以了。
(ps:假如在C盘记得给予这个文件夹管理员权限!!!)
2、接下来也是关键一步,进入build—>clean build,然后build—>rebuild,大多时候情况就会解决了
3、接下来开始运行app,在这里我建议运行下面的测试,因为这样会避免错误,会成功安装程序在手机里。
或者在这里运行:
上周考试错题总结
- 错题1
A collection in the items stored there are of different types is referred to as a (n) ________ type.
A. homogeneous
B. heterogeneous
C. dynamic
D. abstract
E. vector正确答案: B 我的答案: C
解析:术语异构意味着元素是不同的类型。在Java中,类可以存储异构类型,例如一个实例数据可能是一个int,另一个是String,第三个是double。另一方面,数组是同类型的,因为存储在数组中的每个元素都是相同的类型。
- 错题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 我的答案: C
解析:抽象数据类型包含数据结构以及操作和访问数据结构的方法。在列出的那些中,只有矢量结合了这两者。该数组是数据结构,但没有方法(例如插入方法或搜索方法),而引用变量和基本类型是数据而不是数据结构。
- 错题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 我的答案: C
解析:所有这些答案都是面向对象功能的类型。抽象数据类型封装了数据结构和操作数据结构的方法,从而保留了信息隐藏。因此,所有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
解析:由于该数组是一个静态大小的对象,因此如果它被填充,则应该阻止任何添加类型的操作,无论是List插入,队列入队还是堆栈推入。这可以通过首先检查结构是否已满来确定。如果数据结构是使用链表实现的,那么这是不必要的,因为(我们假设)总会有动态内存可用于添加新元素。
- 错题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 我的答案: A
解析:在链接列表中,链接是对下一个节点的引用。通过检查参考文献的内容,通过“取消参考”来链接链接。节点是对象。对象是类的实例。一个节点的数据部分可能是一个int,以及任何其他类型的数据。
- 错题6
A simple linear list
A. is an example of a degenerate tree
B. is an example of a degenerate graph
C. is an example of a degenerate digraph
D. cannot be represented as a degenerate tree, graph or digraph
E. none of the above正确答案: A 我的答案: D
解析: 一个简单的线性列表从它的起始节点到它的结束节点。图表和二元图都不具有起始节点,但是树具有:树的根。因此,一个简单的线性列表就是一个退化树的例子,它具有一个分支因子,每个节点只有一个后继,从根开始,到单叶(结束节点)。
- 错题7
The push and enqueuer operations are essentially the same operations, push is used for Stacks and enqueue is used for Queues.
A. true
B. false正确答案: B 我的答案: A
解析:尽管这两个操作对于其各自的抽象数据类型都是“添加”或“插入”操作,但它们的不同之处在于,始终在堆栈的顶部(或前面)添加推入,而排队始终在队列的后部添加。
- 错题8
Linux Bash中,使用man 3 printf命令不能查看C语言中的printf函数的帮助文档。
A. true
B. false正确答案: B 我的答案: A
解析:使用man 3 printf命令可以查看C语言中的printf函数的帮助文档。
- 错题9
Linux Bash中,使用sudo apt-get upgrade命令可以更新系统。
A. true
B. false正确答案: A 我的答案: B
解析:知识点不熟悉。
- 错题10
一个具有执行权限的目录可以被打开并查看内部文件。
A. true
B. false正确答案: B 我的答案: A
解析:一个目录同时具有读权限和执行权限才可以打开并查看内部文件。
- 错题11
Linux Bash中,可以使用chomd 777 pdds命令修改文件pdds的权限,并使得其拥有者、拥有者所在的组和其他用户都拥有全部权限。
A. true
B. false正确答案: B 我的答案: A
解析:应该是:chmod 777 pdds,不是 chomd 777 pdds
- 错题12
Linux Bash中,使用rm –r /dky/D*命令强制删除/dky目录下所有D开头的文件。
A. true
B. false正确答案: B 我的答案: A
解析:应该是:rm –f /dky/D*
- 错题13
Linux Bash中,查找五天之内src目录中删除的文件的命令是find /src/ -ctime -5。
A. true
B. false正确答案: A 我的答案: B
解析:知识点不清楚。
- 错题14
Linux Bash中,使用tar命令把文件dky打包成dky.tar的命令是tar –c dky.tar dky 。
A. true
B. false正确答案: B 我的答案: A
解析:应该是:tar –cf dky.tar dky
- 错题15
Linux Bash中,使用grep查找当前src目录下所有包含main函数的文件,并要求显示出现行号的命令是grep –n main /src
A. true
B. false正确答案: B 我的答案: A
解析:应该是:grep –rn main /src
- 错题16
在Ubuntu中,使用vim编辑器时,想要移动光标,除方向键之外,还可以依次使用hijk键进行上下左右的移动。
A. true
B. false正确答案: B 我的答案: A
解析:应该是:上下左右顺序依次是kjhl
- 错题17
在Linux Bash中,为所有人对file1.txt文件添加写入权限的命令是chmod o+w filel.txt 或者 chmod 666 filel.txt.
A. true
B. false正确答案: B 我的答案: A
解析:chmod a+w filel.txt 或者 chmod 666 file,注意 a+w 和 o+w 的区别
代码托管
由于过于庞大,不加入实际代码行
结对及互评
- 本周结对学习情况
- 20172316赵乾宸
- 博客中值得学习的或问题:
- 内容详略得当;
- 代码调试环节比较详细;
- 基于评分标准,我给本博客打分:5分。得分情况如下:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 一个问题加1分
- 20172316唐才铭
- 博客中值得学习的或问题:
- 内容详略得当;
- 代码调试环节比较详细;
- 基于评分标准,我给本博客打分:9分。得分情况如下:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 一个问题加1分
- 代码调试中的问题和解决过程, 一个问题加1分
感想
这周又新接触了一门新东西,觉得我们这一学期学的新东西还是足够多的,但是一方面,很多同学都是只是会敲,但是很多人不理解无论是Java还是AS,就是学习学的不够彻底,留下了很多问题需要去解决,所以,以至于在最近很多同学很叫做所谓的伸手党,虽然我觉得这个词,形容的不是那么很合理,但是也是因为反映出来这样一种事实,对于Java语言很多方面的不理解导致的问题,所以,我记得别人给我说过这样一句话:“会者不难,难者不会。”所以,希望我们大家一起努力,加油!
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 目标 5000行 30篇 400小时 第一周 156/156 1/1 15/15 第二周 217/371 1/2 20/35 第三周 233/604 2/4 20/55 第四周 1382/1986 1/5 35/90 第五周 146/2196 1/6 25/115 第六周 462/2658 1/7 15/130 第七周 856/3514 1/8 20/150 第八周 1877/5391 3/11 20/170 第九周 1747/7138 1/12 20/190 第十周 1323/8461 2/14 30/220 第十一周 0/8461 1/15 50/270 参考资料
MarkDown 图片大小问题
关于清单文件
android学习——AndroidManifest.xml清单文件的重要性
一步一坑学android之禁用Appt2(andriod studio3.0)
Android
蓝墨云班课
原文地址:https://www.cnblogs.com/qh45wangwenbin/p/9122270.html