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

教材学习内容总结

  • 第23章 Android简介
  • 第24章 初识Android
    • Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
    • Project窗口中有两个主要的节点:app和Gradle Scripts。app则又包含三个节点:manifests(包含另一个AndroidManifest.xml文件,对应用程序进行描述),java(包含了所有的Java应用程序和测试类),res(包含了资源文件)。
    • 每个Android应用程序都必须有一个叫做AndroiManifest.xml的清单文件用来描述应用程序。
    • Log类带有以不同的日至级别进行日志消息的方法。d(debug)、i(info)、v(verbose)、w(warning)、e(error)、wtf(what a terrible failuer)。
  • 第25章 活动
    • Activity中有onPause, onStart, onResume, onDestory, onRestart和onStop这六个方法。如下图所示:
    • Intent代表了Android应用的启动”意图”,Android应用将会根据Intent来启动指定组件。

      在Android 帮助文档中,Intent的介绍为An intent is an abstract description of an operation to be performed,意思是一个Intent是对一个即将进行的操作的抽象,Intent的字面意识就是”意图”,Android应用程序中的三种其他应用程序基本组件——Activity, Service和Broadcast、Receiver,都是使用称为intent的消息来”激活”的。

  • 第26章 UI组件
    • 常使用以下组件。TextView、EditText、Button、RadioButton以及RadioGroup、CheckBox、ImageView。
      TextView的基本属性(android:text;android : textColor;android : textSize)。EditText的基本属性(android:inputType、android:hint、android:drawableLeft、android:drawablePadding)。各个控件之间相同的属性 (android:text,android:width,android:height、android:id)每个控件独有的属性(Button:onClick、EditText:hint,inputType、CheckBox:Checked、RadioButton:Checked)

    • Toast是一种消息提示框,会在屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点、一段时间过后自动消失。

      Toast是一种提供给用户简洁提示信息的视图。 不能获得焦点
      显示一段时间后自动消失
      Toast 是一个 View 视图,快速的为用户显示少量的信息。
      不影响用户的输入等操作,主要用于 一些帮助 / 提示。
      Toast.makeText(Mainthis, “提示的内容”, Toast.LENGTH_SHORT).show(); 第一个是上下文对象!对二个是显示的内容!第三个是显示的时间,只有LONG和SHORT两种 会生效,即时你定义了其他的值,最后调用的还是这两个!

    • 通知是出现在状态栏的一条消息。和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者关闭设备。一个通知必须包含以下三项属性:小图标,对应 setSmallIcon();通知标题,对应setContentTitle();详细信息,对应 setContentText()。

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

  • 问题1:刚开始看教材的时候,了解到Android Studio 提供基于Gradle的构建支持,那么Gradle到底是个什么东西呢?
  • 问题1解决方案:

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。

软件开发讲究代码复用,通过复用可以使工程更易维护,代码量更少. 开发者可以通过继承,组合,函数模块等实现不同程度上的代码复用.但不知你有没有想过,软件开发也是一种工程作业,绝不仅仅是写代码,还涉及到工程的各种管理(依赖,打包,部署,发布,各种渠道的差异管理.....),你每天都在build,clean,签名,打包,发布,有没有想过这种过程,也可以像代码一样被描述出来, 也可以被复用.

  • 问题2:在刚接触AS中的监听器的用法的时候,不清楚监听器的用法和存在意义是什么。
  • 问题2解决方案:上网查询了资料,有了一个初步大致的了解。

    1、监听器是个抽象类,它包含了一个事件触发时系统会去调用的函数
    2、在子类中,根据您项目的需要重写这个函数
    3、派生后的监听器需要绑定到按钮上,就像一个耳机可以发出声音,但您不去戴它,您是听不到它发出的声音的。一般的情况是这个按钮可能需要这个监听器,而另外一个按钮需要另外一个监听器,每个监听器各司其职,但功能相似时,也可以多个按钮共同绑定一个监听器。
    4、各种控件,都有常用的事件,如点击按钮,拖动一个滚动条,切换一个ListView的选项等等,他的绑定监听器的函数命名规则是setOn****Listener

  • 问题3:在学习与活动相关的意图的时候,教材上说意图分为显式意图和隐式意图,不是很清楚他们到底代表的是什么。
  • 问题3解决方案:显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
    隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
    显示意图非常常用也非常简单一般用于应用程序内之间Activity的相互调用转换。
    隐式意图:
    简单概括就是: 意图包括:Action(动作),Category(附加信息),Data(数据,具体内容),Tpye(类型)等等,举个例子,说白了意图就是启动一个组件的的完整的动作信息,就像打人,打就是Action动作,人就是Data内容,而Type就是类型,打什么人呢?打坏人,type就是坏指的类型,只有这些信息全了才能执行一个完整的意图,当然还有一些信息,比如scheme就是URI类型的数据的前缀,就像这个例子当中的sms:,还有host主机名,path路径等。

代码调试中的问题和解决过程

  • 这周没有代码哦~

代码托管

  • 没有代码也就没有码云链接了吧(^▽^)

上周考试错题总结

  • 错题1: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

  • 解析 由于该数组是一个静态大小的对象,因此如果它被填充,则应该阻止任何添加类型的操作,无论是List插入,队列入队还是堆栈推入。 这可以通过首先检查结构是否已满来确定。 如果数据结构是使用链表实现的,那么这是不必要的,因为(我们假设)总会有动态内存可用于添加新元素。
  • 原因 这道题是由于我理解错了题意,我的想法是堆栈和队列使用链表来实现的,而链表是动态的,所以检查结构是否已满是没有意义的。但我忘记了最最最重要的一点!!!那就是链表也是要由数组来实现的。
  • 错题2: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

  • 解析 在链接列表中,链接是对下一个节点的引用。 通过检查参考文献的内容,通过“取消参考”来链接链接。 节点是对象。 对象是类的实例。 一个节点的数据部分可能是一个int,以及任何其他类型的数据。
  • 原因 这道题错误就是对链表的定义理解不清了。
  • 错题3: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

  • 解析 一个简单的线性列表从它的起始节点到它的结束节点。 图表和二元图都不具有起始节点,但是树具有:树的根。 因此,一个简单的线性列表就是一个退化树的例子,它具有一个分支因子,每个节点只有一个后继,从根开始,到单叶(结束节点)。
  • 原因 学习的时候不理解退化树代码的是什么。。。
  • 错题4:在Ubuntu中,使用vim编辑器时,想要移动光标,除方向键之外,还可以依次使用hjkl键进行上下左右的移动。

A . true
B . false

  • 解析 上下左右顺序依次是kjhl
  • 原因 这道题是防不胜防啊,完全就没注意到这里还能够有错误。

结对及互评

  • 博客中值得学习的或问题:
    • 排版精美,对于问题研究得很细致,解答也很周全。
  • 代码中值得学习的或问题:
    • 代码写的很规范,思路很清晰,继续加油!

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172332
    • 20172326
    • 结对学习内容
      • 第23章 Android简介
      • 第24章 初始Android
      • 第25章 活动
      • 第26章 UI组件

其他(感悟、思考等,可选)

这周学习的知识相比前几周来说是要难上不少的,毕竟接触的是新的东西,从Android studio的安装开始都困难不断,不是这儿出了毛病,就是那儿出了问题。在AS上进行Android的开发对我来说是很陌生的,通过这一周的学习也着实充实了自己,学习到了不少新的知识,尽管是一个很简单的APP,但由于是自己亲手编写的,看到它能够在手机上运行起来还是很开心的。这一周也更加让我意识到自己学缺乏的知识还多的多,希望自己能够在以后的学习生活中继续努力,看到自己一点点不断地进步。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 126 1/1 20/20
第二周 388/466 1/2 15/35
第三周 706/1162 1/3 17/52
第四周 1104/2266 1/4 20/72
第五周 1126/3392 1/5 15/87
第六周 906/4298 1/6 20/107
第七周 1233/5531 1/7 20/127
第八周 1091/6622 1/8 24/151
第九周 320/7042 1/9 20/171
第十周 335/7377 1/10 20/191
第十一周 0/7377 1/11 20/211
  • 计划学习时间:20小时

  • 实际学习时间:20小时

参考资料

  • 《百度百科》
  • 《如何通俗地理解 Gradle?》
  • 《可能是史上最全的Android Studio入门级文档》
  • 《Android Studio Android UI控件学习笔记》
  • 《Android学习记录(7)—Intent中显示意图和隐式意图的用法》

转载于:https://www.cnblogs.com/yu-kunpeng/p/9123552.html

更多相关文章

  1. Firefox OS 学习——manifest.webapp结构分析
  2. Android学习笔记―第二章 Android四大组件
  3. Android中GUI系统的Event路由机制
  4. android 自动化测试之MonkeyRunner学习(二)
  5. Android学习2
  6. Android(安卓)ActionBar Tabs学习笔记
  7. Pro Android学习笔记(九七):BroadcastReceiver(1):基础小例子
  8. Android(安卓)AIR 学习(一)
  9. Github上100个经典开源Java项目 值得阅读学习

随机推荐

  1. Android下的Touch事件分发
  2. android获取assert资源文件
  3. Android判断touch事件点是否在view范围内
  4. Android SqlLite 学习
  5. Android 8.0 SystemUI(三)——StatusBar
  6. 图片的放大缩小
  7. Android延时执行调用的几种方法
  8. Android中的Activity的生命周期(图)
  9. PowerManagerService sensor
  10. Android中通过ContentProvider和ContentR