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

作业要求

1.教材第23-26章(Java和Android开发学习指南)

  • 代码托管到git@OSC,参考一下使用开源中国托管代码
  • 有问题去蓝墨云班课或者答疑论坛提问,尽量不在微信群和QQ群解答学习问题

教材学习内容总结

第23章 Android简介

  • 通过这章,我学习到的是一些Android的基础知识
  • Android操作系统是一种多用户的Linux系统,每个应用程序作为单独的Linux进程中的一个不同的用户而运行。
  • 有4种 Android应用程序组件
    • 活动(Activity):包含用户组件的一个窗口
    • 服务( Service):在后台长时问运行的操作
    • 广播接收者( Broadcast receiver):一个监听器,负责对系统或应用程序声明做出响应
    • 内容提供者( Cantent provider):管理要和其他应用程序分享的一组数据的一个组件
  • 每个应用程序都必须有一个应用清单,描述该程序,以XML的文件形式给出,使用mainfest作为其根元素。
    Android清单文件示例:
    <?xml version="1.0" encoding="utf-8"?>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />    <application>  <activity>  <intent-filter>  <action />  <category />  <data />  </intent-filter>  <meta-data />  </activity>  <activity-alias>  <intent-filter> . . . </intent-filter>  <meta-data />  </activity-alias>  <service>  <intent-filter> . . . </intent-filter>  <meta-data/>  </service>  <receiver>  <intent-filter> . . . </intent-filter>  <meta-data />  </receiver>  <provider>  <grant-uri-permission />  <meta-data />  <path-permission />  </provider>  <uses-library />  </application>  

Android基础知识点-Manifest清单文件

  • 还了解了一些Android的版本信息,现在仍在更新。Android系统版本号和Android API level对应表

    第24章 初始Android

  • app :包含应用程序中所有的组件,有三个节点 manifests、java、res。
    • manifests:包含了一个AndroidManifests.xml文件,它描述了应用程序。
    • java:包含了所有的Java应用程序和测试类。
    • res:包含了资源文件。在这个目录下还有一些目录:drawable(包含了用于各种屏幕分辨率的图像)、
      layout(包含了布局文件)、menu(包含了菜单文件)、mipmap(包含了用于各种屏幕分辨率的app图标)、还有value(包含了字符串和其他值)
  • 在实验中我也碰到过R文件出bug的问题,它其实是一个看不见的通用的Java类,其包含了所有的资源的资源ID,
    每次你添加、修改或删除资源的时候,都会重新生成R;R的作用是让你能够引用代码中的一个资源。
  • Android的调试和IDEA中的调试很像,都是先要设置断点。

    第25章 活动

  • 掌握活动的生命周期非常重要,因为一个正常的android应用,会有很多的活动,如何在这些活动之间进行切换、数据的交互等,
    就经常会用到活动的生命周期这一块的知识。可以说,只要掌握了活动的生命周期,才能更流畅的写android的程序。

从上面说的可以看出,活动分为;
完整生存期:onCreate()方法和onDestroy()之间,总共调用了6个方法。
可见生存期:活动在onStart()方法和onStop()之间,总共4个方法,再加上重新运行的onRestart()方法,总共5个。
前台生存期:活动在onResume()方法和onPause()方法,总共2个方法。

  • 修改应用程序图标 :
    1.在res/drawable中保存jepg文件或者png文件,png首选,其支持透明度。
    2.编辑清单文件manifests的android:icon属性,以指向新的图像,可以使用如下格式修改引用图像文件:@drawable/filename,
    其中,filename不带扩展名的图像文件名称。
  • 启动另一个活动:可以通过调用startActivity方法直接做到。如startActivity(intent),其中intent是Android.content.Intent类的一个实例。
  • 通过传递给意图一个活动类而构造的意图,叫做显式意图。也可以创作一个隐式意图,在这种情况下我们没有指定一个意图类,相反,我们给Intent类的构造方法传递一个动作,让系统来决定启动哪一活动,如果有多个活动可以处理,系统会让用户来进行选择。

第26章 UI组件

  • 使用Android Stutio 创建UI只需打开一个活动的布局文件,并将其拖拽到布局上即可。活动的布局文件位于应用程序的res/layout目录中。
    工具窗口分为三个:左边是微件,分别为Layout、Widgets、Text Fields和Containers等不同种类。每个微件和布局都有一组属性,这些属
    性派生自View类或者添加到实现类。使用UI工具所做的事,都会反应到布局文件中去,以XML元素的形式体现出来。

  • Toast:是Android中用来显示显示信息的一种机制,Toast是Android中用来显示显示信息的一种机制,Toast是没有焦点的,而且Toast显
    示的时间有限,过一定的时间就会自动消失。而且Toast主要用于向用户显示提示消息。anroid.wedget.Toast类是创建Toast的模板,要创建
    一个Toast,调用它的构造方法,接收Context作为一个参数。Toast还提供了两个静态的makeText方法来创建Toast实例。

  • 通知:通知是出现在状态栏里的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者是关闭设备。

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

  • 问题1: Andriod中的布局文件是什么?怎么创建一个新的布局文件?这是在学习课本修改页面布局时想的问题,
    因为代码是直接导入的(因为那些代码实在有些看不懂),所以也不知道怎么创建一个布局文件。

  • 问题1解决方案:

    在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、(FrameLayout)、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
    2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
    3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
    总之,Android中一共有六种布局。

在Android Studio中layout下的文件都是布局文件,创建一个布局文件

  • 问题2:UI组件是什么?
  • 问题2解决方案:UI是指为主活动构建用户交互

对上面两个问题,有一篇很好的参考资料android六大布局和UI组件

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

  • 问题1:因为文件是导入的,所以遇到了这样一个问题R.menu出错
  • 问题1解决方案:但我的工程的res目录下已有menu文件夹,为什么电脑给出的是找不到对应的文件?同学给出了clean的建议,结果成功了。
    clean我之前以为是要清除文件,但其实

    1.Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。
    2.Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。
    3.Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。
    4.Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project是一致的,这个不知道Google搞什么鬼~~
    5.Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。
    6.Generate Signed APK:生成有签名的apk。

代码托管

上周考试错题总结

  • 错题1及原因,理解情况(3)

  • 解析:一个抽象的数据类型包含一个数据结构和操作和访问数据结构的方法。在这些列表中,只有向量结合了这两个方面。虽然数组是一个数据结构,但是没有方法(例如插入方法或搜索方法),而引用变量和原始类型是数据,不是数据结构。

  • 错题2及原因,理解情况(4)

  • 解析:其实上述答案都是面向对象特性的类型。但在这里抽象数据类型封装了数据结构和操作数据结构的方法,从而保留了信息隐藏。因此,所有的ADT
    都使用隐藏的信息,这样数据结构就不能直接从ADT外部操纵,其他面向对象的特性就不是关键。

  • 错题3及原因,理解情况(16)

  • 解析:一个简单的线性列表被定向,从它的起始节点到它的结束节点。
    图和图都没有起始节点,但是树确实有树的根。所以,一个简单的线性列表就是一个退化树的例子,它有一个分支因子,
    每个节点都有一个单独的继承者,从根开始,到单个叶子(结束节点)结束。

  • 错题4及原因,理解情况(20)

  • 解析:数组是一种数据结构,可以用来存储一系列值,但是数组中没有已经实现的操作来执行列表操作,比如添加到末尾,或者删除给定的值。
    和第三题的错误原因是一样的。

  • 错题5及原因,理解情况(21)

  • 错题6及原因,理解情况(26)

  • 解析:在Java中,所有的数据都是原始类型或类。ADT是一种数据结构,因此它不仅仅是一种原始类型,而是一种不同类型的结构。因此,
    ADT必须在类中定义。并不是所有的类都是ADTs,但是所有的ADTs都被定义为类。

  • 错题7及原因,理解情况(36)

  • 解析:chmod 777 pdds,不是 chomd 777 pdds。emmm,好吧,确实有点坑。

  • 错题8及原因,理解情况(39、40、41)

  • 这几道题目会错全是因为对Linux的命令行操作大都不记得了。
    39:用rm –f /dky/D*强制删除/dky目录下所有D开头的文件。
    41:用tar –cf dky.tar dky把文件dky打包成dky.tar。

  • 错题9及原因,理解情况

  • 我只想说题目出的真的有点坑,和36题一样,但是还是因为自己做题太粗心,一看到hjkl就认为是对的,没有去考虑他们是不是对应好的,
    其实上下左右顺序依次应该是kjhl。

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172309
  • 博客中值得学习的或问题:
    • 除了老师要求的,还总结了27和28章。
    • 能从教材的细微的地方发现自己的知识漏洞,并进行理解,还给同伴带来了帮助(让我学到了新知识٩(๑>◡<๑)۶ )
  • 结对学习内容
    • Andriod的开发,课本23-26章的学习。
    • 实验四的完成。
  • 上周博客互评情况
    • 20172309
    • 20172310

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

这学期的学习接近尾声,可以说在本学期的学习中Java占去了我大部分的时间。这周的学习内容里我们有接触了一个全新的东西Android,也不能说完全的陌生,但我确实从没有以开发者的角度去使用Android,刚开始接触新东西的时候肯定是困难重重的,就像当初的虚拟机和IDEA,装新软件的过程中总是有这样那样的问题,不过这次的Android还是很有趣的。
眼看考试周就要到了,我们Java的学习强度也稍有下降,但是我们仍旧在解锁新的知识,所以说学习Java的脚步不能停止,我要继续加油。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 127/127 1/1 25/25
第二周 278/405 1/2 20/45
第三周 442/847 1/3 20/65
第四周 1063/1910 2/5 30/95
第五周 840/2750 1/6 27/122
第六周 631/3381 1/7 20/142
第七周 914/4295 1/8 20/162
第八周 2534/6829 2/10 30/192
第九周 252/7081 3/13 26/218
第十周 630/7711 1/14 27/245
第十一周 0/7711 2/16 20/265

参考资料

  • Java和Android开发学习指南

  • Android系统版本号和Android API level对应表

  • Android基础知识点-Manifest清单文件

  • android六大布局和UI组件

转载于:https://www.cnblogs.com/Qiuxia2017/p/9105040.html

20172310 2017-2018-2 《程序设计与数据结构》第十一周学习总结相关推荐

  1. 20172304 《程序设计与数据结构》第九周学习总结

    20172304 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本章是第十五章,主要介绍了图的概念. 首先我来介绍一下图的基本结构. 从逻辑上讲,图是由边和结点组成的,在我的理解 ...

  2. 20162302 《程序设计与数据结构》第一周学习总结

    20162302 2017-2018-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 很多情况下时间和空间不可兼得.在不同的情况下,要么用时间换空间,要么用空间换时间. 引出算 ...

  3. 20172315 2017-2018-2 《程序设计与数据结构》第九周学习总结

    学号 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 异常是定义一个非正常情况或错误的对象,由程序或运行时环境抛出. 异常与错误不同,错误代表不可恢复的问题 ...

  4. 20172304 《程序设计与数据结构》 第二周学习总结

    20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合 ...

  5. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...

  6. 20162329 张旭升 2017 - 2018 《程序设计与数据结构》第五周总结

    20162329 2017-2018-1 <程序设计与数据结构>第五周学习总结 教材学习内容总结 1.学习目标 了解集合的概念 了解并使用抽象数据类型 初步了解使用Java泛型 学习栈这种 ...

  7. 20162329 2017-2018-1 《程序设计与数据结构》第九周学习总结

    第九周学习总结 一.学习目标 二叉查找树的理解 二叉查找树的实现 平衡二叉查找树 哈夫曼树的实现 堆的理解 堆的实现 二.学习内容 1.二叉查找树 思路: 二叉查找树与一般二叉树的区别在于,二叉查找树 ...

  8. 20162303《程序设计与数据结构》第一周学习总结

    学号 2016-2017-2 <程序设计与数据结构>第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识,虽然比较基础,但是在实际过程中还是出现了许许多多的问题,代码一遍遍的敲错 ...

  9. 20162330 2017-2018-1《程序设计与数据结构》第二周学习总结

    2017-2018-1 学习总结目录: 1 2 3 5 6 7 9 10 11 12 目录 0. 本周学习内容总结 0.1 Comparable接口与Comparator接口的使用 0.2 泛型方法设 ...

  10. 20172323 2017-2018-2 《程序设计与数据结构》第九周学习总结

    教材学习内容总结 本周学习第十一章异常和第十二章 第十一章-异常 异常是一个定义非正常情况或错误的对象,由程序或运行时环境抛出,可以根据需要进行相应的捕获和处理. 错误和异常都是对象,代表非正常情况或 ...

最新文章

  1. Android View框架的measure机制
  2. Web3.js 0.20.x API 中文版翻译
  3. 中国科学院空天信息研究院苏州分院面试——总结
  4. 一次搞懂WCF 配置文件
  5. 图像的连通域检测的堆栈算法
  6. 数组转换为html,如何将多维PHP数组转换为html表
  7. [Python]学习基础篇:面向对象编程
  8. Percona XtraDB Cluster(PXC)原理
  9. 鸿蒙不支持PDF,华为鸿蒙 HarmonyOS IoT 应用设计文档(1).pdf
  10. baymax平台导入任务错误日志报错: Please login with USER and PASS.
  11. DBeaver数据库可视化工具
  12. 最新织梦DEDE仿爱手赚网手赚导航网站源码手赚App下载导航站+手机版
  13. 写给准备找工作的同学们(阿里巴巴面试流程)
  14. LeetCode解题记录(409)——最长回文串
  15. 数据页和数据行(第八周翻译)
  16. vsocde vue snippet 设置
  17. QT--警告libpng warning: iCCP: known incorrect sRGB profile
  18. 相亲与恋爱套路不一样:相亲有哪些需要注意的?
  19. 股市java_Java获取股市交易日
  20. Navicat for MySQL(三叶草)破解工具

热门文章

  1. .net core 中文乱码问题
  2. ASP.NET Core重写个人博客站点小结
  3. Android手机开机自动启动
  4. MFC之进度条CProgressCtrl
  5. java程序员修炼之道
  6. 各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)...
  7. Entity framewrok (linq to entity)查询优化的一点摸索
  8. 关于IIS和Serv-U在同一台服务器中端口冲突问题
  9. Sql server 获得某一部门下的所有子部门。根据子部门获得它的上级部门。
  10. 正态分布里的西格玛_西格玛和西格玛水平