20172329 2017-2018-2 《程序设计与数据结构》第十一周学习总结

20172329 2017-2018-2 《程序设计与数据结构》第十一周学习总结

教材学习内容总结

Java和Android开发学习指南 第23章 Android简介

1、4种Android应用程序组件
一、活动 ( Activity ) : 包含用户交互组件的一个窗口 。
二、服务 ( Service ) : 在后台长时间运行的操做 。
三、广播接收者 (Broadcast receiver ) : —个监听器 , 负责对系统或应用程序声明作 出响应 。
四、内容提供者 ( Contentprovider ) : 管理要和其余应用程序分享的一组数据的一个 组件php

2、intent
Android 编程中的另外一个重要的概念是意图(intent),意图是一条消息 ,发送给系统或另外一个应用程序 ,以要求执行一个动做 。可使用意图来作不少不一样的事情 ,但一般使用意图来启动一个活动 ,启动一个服务或者发送条广播 。每一个应用程序都必须有一个清单( manifest ),描述该应用程序 。清单以 XML 文件的形式给出 , 其中 包含了以下的一项或 几项 :
一、运行该应用程序所需的最小APILevel 。
二、应用程序的名称 。这个名称将会显示在设备上 。
三、当用户在其手机或平板电脑的主屏幕上触碰该应用程序的图标的时候 ,将会打开的第一个活动 ( 窗口 ) 。
四、是否容许从其余的应用程序调用你的 应用程序组件 。为了促进代码复用 ,只要应用程序的开发者赞成分享 ,就能够从其余应用程序调用该应用 程序的功能 。例如 ,能够从须要照片和视频拍摄功能的应用程序中 ,调用默认的Camera 应用程序 。
五、对于在目标设备上安装的应用程序 ,用户必须保证一组什么样的许可 。若是用户不能保证全部必须的许可 ,将不会安装该应用程序 。html

Java和Android开发学习指南 第24章 初识Android

1、下载和安装Android Studio
一、首先运行android-studio-ide-173.4720617-windows,开始安装
注:通过屡次尝试,必须将Android Stuidio的安装路径放于C盘的一个空文件夹里,而且,所建的文件夹名字不能带有ACSⅡ字符,好比中文。
java

二、开始进行配置文件
(1)咱们第一次打开AS须要咱们配置必定的文件他才会顺利为咱们打开,首先,当安装好之后呈现出这个页面之后:

(2)点击新建一个项目(这里要注意一个定义,这里咱们建的项目是一个总体的项目,新手小白可能会出现创建新项目就是新建一个app的想法,新建一个模块是能够在这个项目里面创建的,因此这里建议将这个项目不要命名为一个程序的名字,要么之后后悔都来不及,建议命名为“AndroidProject”之类的名字,以避免区分其余程序项目node

(3)接下来应该会呈现这样一个界面
android

默认选择之后,到了重头戏:
git

到了这个页面的时候,须要选择cancel,由于在个人试验里,假如选择Setup Proxy,它会一直重复这个过程直到咱们本身崩溃,当咱们选择cancel之后,就紧接着继续后续操做,刚刚没有选择cancel的过程是咱们须要下载成功制造一个app须要的配置文件,好比:grade等等。当咱们下载继续一路next之后,就完成了咱们的配置工做。(若是是按照上述彻底同样,会成功,假若有一步不对,就会出现大大小小的问题)web

2、建立应用程序编程

Java和Android开发学习指南 第25章 活动

1、活动的生命周期
一、活动是android.app. Activity类的一个实例。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说,启动一个活动就意味着要显示一个窗口。应用程序所建立的第一个窗口,叫做主活动(main activity),它充当应用程序的入口点。
二、当用户从主屏幕选择一个应用程序图标的时候,系统将会查找应用程序的主活动并启动它。启动一个活动涉及实例化活动类(这在清单中的activity元素的android:name属性中指定),而且调用其生命周期方法。vim

2、修改应用程序图标
一、在res/drawable中保存一个jepg文件或者png文件。png文件是首选的,由于这个格式支持透明度。windows

3、启动另一个活动
一、经过调用startActivity方法而直接作到,好比startActivity(intent),其中intent就是android.content.Intent类的一个实例。

Java和Android开发学习指南 第26章 UI组件

1、概览
一、Android SDK提供了叫做微件(widget)的众多简单的和复杂的组件。微件的例子,包括不少按钮、文本字段和进度条等。此外,还须要选择一个布局来放置UI组件。微件和布局,都在android.view.View类中实现。视图是占据屏幕的一个矩形区域。View类是最重要的Android类型之一。

2、Toast
一、Toast是一个小的弹出的对话框,用于显示一条消息做为给用户的反馈。Toast并不会代替当前的活动,而且只是占据了一条消息那么大的空间。
二、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)

3、通知
一、通知是出如今状态栏的一条消息,和Toast不一样,通知是持久的,而且将保持显示,直到关闭它或者关闭设备。
二、通知是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。将子视图放置到一个栅格中的一种布局。

2、LinearLayout
一、LinearLayout是根据其orientation属性,将子视图水平地或垂直地排列的一种布局。LinearLayout是最 容易使用的布局。

Java和Android开发学习指南 第28章 监听器

1、概览
一、使用活动中的一个视图进行的用户交互,可能会触发一个事件,并且你能够编写当事件发生的时候所执行的代码。包含了响应某一个事件的代码的类,叫做事件监听器(event listener)。
二、要让程序响应某一个事件,须要为该事件编写一个监听器。作到这一点的方式,是实现嵌入在 android.view.View类中的一个接口。

教材学习中的问题和解决过程

  • 问题1:
    第一次安装AS 的时候,看了网上安装AS的教程,在遇到就是在过程当中写到的这个:

一直都在点Setup Proxy,在这里弄了很久。

  • 问题1解决方案:
    在上文中也提到过,我点击了Cancel,在后面配置的时候自动就下载了grade等配置文件。

  • 问题2:
    在第一次打开的时候,R就是红色的,显示R文件丢失,如图

  • 问题2解决方法:
    一、首先有两种解决策略:
    (1)若是急用或是建立过的项目须要修改:
    能够先选择为android,而后点开Gradle Scripts下的gradle.properties

并在最后一行添加
android.enableAapt2=false

(2)永久禁用
假若有这样的问题,说明安装路径里面可能有中文,因此把它移到一个新的文件夹下面,并且这个文件夹名字不能有中文就能够了。
ps:假如在C盘记得给予这个文件夹管理员权限!!!

二、接下来也是关键一步,进入build—>clean build,而后build—>rebuild,大多时候状况就会解决了

三、接下来开始运行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 的区别

代码托管

因为过于庞大,不加入实际代码行

结对及互评

  • 本周结对学习状况
  • 博客中值得学习的或问题:
    • 内容详略得当;
    • 代码调试环节比较详细;
  • 基于评分标准,我给本博客打分:5分。得分状况以下:
  1. 正确使用Markdown语法(加1分):

  2. 模板中的要素齐全(加1分)

  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  • 博客中值得学习的或问题:
    • 内容详略得当;
    • 代码调试环节比较详细;
  • 基于评分标准,我给本博客打分:9分。得分状况以下:
  1. 正确使用Markdown语法(加1分):
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程, 一个问题加1分
  4. 代码调试中的问题和解决过程, 一个问题加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
蓝墨云班课

相关文章
相关标签/搜索