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

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

教材学习内容总结

第23章 Android简介

1.组件

Android应用程序组件共有四种:html

  • 活动(Activity):用户交互的窗口。
  • 服务(Service):在后台长时间运行的操做。
  • 广播接受者(Broadcast receiver):一个监听器。
  • 内容提供者(Content provider):管理要和其余程序分享数据的一个组件。

2.意图

  • 意图(intent)是Android程序中的一条消息,用于要求程序执行某一动做。

3.清单

  • 每一个应用程序都必须包含一个XML形式的清单(manifest),其中应该包含如下几项
  • 程序所需的最小的API Level
  • 程序的名称
  • 用户在触碰应用程序图标时打开的第一个活动窗口
  • 是否容许其余应用程序调用该程序的组件
  • 用户需保证的许可

第24章 初识Android

1、应用程序的调试

  • 1.日志
    • 使用日志消息是最简单的调试应用程序的方法,Android中使用android.util.Log来记录日志消息。
  • 2.设置断点
    • 在某一行单击,选择Run→Toggle Line Breakpoint便可设置断点。或在某一行代码的侧边栏单机也可设置断点。
    • 使用Run→Debug来调试

2、应用程序结构

  • Project窗口中主要有两个节点————app和Gradle Scripts。
    • Gradle Scripts节点包含了Gradle构件脚本。
    • app节点包含了manifests、java和res三个节点。

第25章 活动

1.活动的生命周期

  • onCreate():这个方法会在活动第一次被建立的时候被调用。这个方法用于对活动的初始化,如加载布局,绑定事件等。
  • onStart():这个方法在活动由不可见到可见时被调用。
  • onResume():这个方法在活动准备好和用户进行交互的时候被调用。
  • onPause():这个方法在系统准备去启动或恢复另外一个活动时被调用。(咱们一般会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度必定要快,不然会影响到新的栈顶活动的使用)
  • onStop():这个方法在活动彻底不可见的时候调用。它和onPause()方法的主要区别在于,若是启动的新活动是一个对话框式的活动,那么onPause()方法会获得执行,而onStop()方法并不会执行。
  • onDestroy():这个方法在活动被销毁以前调用。以后的活动状态变为销毁状态。
  • onRestart():这个方法在活动由中止状态变为运行状态以前调用,也就是活动被从新启动了。

2.修改应用程序图标

  • res/drawable中保存一个jepg或png文件
  • 编辑manifest中的android:icon属性,使用@drawable/图像文件名称来引用图像。

第26章 UI组件

  • Android提供了许多的UI组件,你能按需构建应用的用户交互界面
    • TextView:文本标签
    • EditText:文本框,是TextView的一个子类,有副文本编辑能力
    • Button:按钮,能够按压、点击,由用户完成一个动做
    • ImageButton:图片按钮
    • CheckBox:复选框,能够做为用户使用的一个开关。当有一系列可供选择的选项时,可以使用该控件
    • ToggleButton:带有一个“灯泡亮暗”效果的开关按钮
    • Spinner:下拉列表,容许用户在多个选项中选择一个
    • TimePicker:时间选择器,能让用户输入时间,有12小时和24小时模式
    • DatePicker:日期选择器,能让用户输入日期
    • ProgressBar:进度条,为用户提供某项工做的进度,好比后台正在作的事情

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

  • 问题1:R类到底是什么?
  • 问题1解决方案:刚开始翻书的时候不认真,后来在书上P254发现了解释:R类是AS中看不到的一个通用类,能够在app/build/generated/source目录下找到它。每当添加、修改或者删除资源时,都会从新生成R。R的做用是让你能够在代码中引用一个资源。
  • 问题2:在看书的时候,对活动程序的结构仍是很模糊
  • 问题2解决方案:在本身真正建了一个程序以后就比较清楚了。
  • build:该目录包含了自动生成的文件,这些文件包括了编译设置项、R类等
  • libs:该目录包含了开发Android应用所须要的库文件
  • src:该目录存放了应用的源代码.java文件。默认状况下,它包含了MainActivity.java文件,这个源代码j有一部分是执行了你点击应用图标时启动应用所须要功能
    • res:该目录存放了全部的资源文件
      • drawable:该目录存放了项目的drawable对象和一些图片资源
      • layout:该目录存放了各个界面的布局文件
      • menu:该目录存放了应用中设计的菜单对象
      • mipmap:该目录存放了应用的主要图片资源
      • values:该目录存放了字符串、颜色等定义的资源集合
    • AndroidManifest.xml:该文件是描述应用基础特性的文件,定义了每一个组件。
  • 问题3:对于程序的生命活动周期,有没有什么具体易懂的简单例子?
  • 问题3解决方法:找到一篇博客android 活动的生命周期,里面举的例子就很是好,除此以外,博客里还把整个活动周期分红三个部分:
    • 完整生存期:onCreate()方法和onDestroy()之间,总共调用了6个方法。
    • 可见生存期:活动在onStart()方法和onStop()之间,总共4个方法,再加上从新运行的onRestart()方法,总共5个。
    • 前台生存期:活动在onResume()方法和onPause()方法,总共2个方法。

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

  • 问题1:刚刚下载好AS的时候,提示:
  • 问题1解决方法:以管理员的身份打开cmd,在里面输入netsh winsock reset后重启便可。
  • 问题2:提示错误Error:Failed to find target with hash string 'android-27' in: E:\androidstudio\androidstudio\sdk
  • 问题2解决方法:产生该错误的缘由是所需的编译版本缺失,解决方法是打开build.gradle文件,将里面相应的版本下降下来便可。
  • 问题3:提示错误Error:(11) error: attribute 'android:roundIcon' not found.
  • 问题3解决方法:删除AndroidManifest.xml里的 android:roundIcon="@mipmap/ic_launcher_roun便可
  • 问题4:在使用git push的时候提示失败,按教程用git pull仍是提示失败
  • 问题4解决方法:失败的缘由是码云上的东西和本地的东西有差异,因此不论是pull还push都会有问题。解决的方法是从新建一个项目,在建项目的时候取消勾选“使用Readme文件初始化这个项目”,

    以后就没有什么问题了。

代码托管

上周考试错题总结(正确为绿色,错误为红色)

  • 错题1: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
  • 缘由及理解状况:抽象类数据类型既封装了数据结构又封装了操做数据结构的方法,因此能够隐藏信息。所以,全部ADT都利用信息隐藏功能,以便数据结构不能直接从ADT外部操做,但不须要其余面向对象的功能。
  • 错题2: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
  • 缘由及理解状况:看题的时候没有注意degenerate,以为图和树都是非线性结构就选了D,但其实退化了的树结构只有一个分支,就至关于一个简单的线性结构。
  • 问题3:在Ubuntu中,使用vim编辑器时,想要移动光标,除方向键以外,还能够依次使用hjkl键进行上下左右的移动。
    • A .true
    • B .false
  • 缘由及理解状况:上下左右顺序依次是kjhl,当时作题的时候只关注了是否是这几个字母,没想到还要一一对应,太坑了_(:з」∠)_
  • 问题4:在Linux Bash中,为全部人对file1.txt文件添加写入权限的命令是chmod o+w filel.txt 或者 chmod 666 filel.txt.
    • A .true
    • B .false
  • 缘由及理解状况:chmod a+w filel.txt是给全部人加上可写权限,包括全部者,所属组,和其余人。chmod o+w filel.txt是只给其余人加上可写权限。

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • 优势:从本周的博客中能够很明显地看出整个学习历程
    • 问题:教材学习内容列的有些杂乱,能够采用分点的方式来写。
  • 代码中值得学习的或问题:
    • 本周的代码基本都是直接拷进去的,你们的代码都比较相似。基本没有问题。

点评过的同窗博客和代码

  • 本周结对学习状况
    • 20172322
    • 结对学习内容
      • 张昊然同窗教会了我如何往AS里放代码,在下AS的初期帮我解决了一些错误。

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

  • 没想到在学期的期末还会接触到这么难啃的一块骨头,刚开始学的时候真的是懵的,并且走的很艰难,幸好这周三作了那几个实验,使我对这部分的知识更加清楚了。不过每一次打开虚拟机仍是颇有成就感的,如今我也是能作简单APP的人了!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 120/120 1/1 9/9
第二周 246/366 1/2 9/18
第三周 785/1121 2/4 15/33
第四周 615/1736 1/5 20/53
第五周 1409/2645 1/6 24/77
第六周 561/3206 1/7 20/97 再次搞清了一些本身有点含糊不清的概念
第七周 63/3269 1/8 15/112
第八周 2476/5745 3/11 90/201
第九周 824/6595 1/12 20/221
第十周 919/7514 2/14 20/241
第十一周 0/7514 3/17 40/281
  • 计划学习时间:20小时
  • 实际学习时间:40小时
  • 改进状况:本周很大一部分时间花在了安装AS上,这个东西真的...当最后真的把它装好,全部的程序都显示绿色的OK时,不由有种想要热泪盈眶的感受

参考资料

相关文章
相关标签/搜索