zoukankan      html  css  js  c++  java
  • 20172324 2017-2018《程序设计与数据结构》第十一周学习总结

    教材学习内容总结

    Android简介

    • 概览:android操作系统是一种多用户的Linux系统,每个应用程序作为单独的Linux进程中的一个不同的用户而运行。Android使用Java语言但是不在Java虚拟机上运行。如果想了解更多的内容,可以看看Android的构建过程
    • 应用程序开发简介:

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

    Android编程中另一重要概念是意图和清单(以xml文件的形式给出)

    • Android版本:都是以好吃的命的名

    • 在线资源(略)

    • 应该使用哪个版本的Java(略)

    初始Android

    • 下载和安装Andriod Studio
    • 创建应用程序
      如果as找不到JDK的正确位置,单击File>Project Structure>SDK Location,然后浏览以找到JDK的位置。
    • 在模拟器上运行应用程序
    • 应用程序结构:project窗口有两个主要的节点,app和Gradle Scripts。app节点包含了应用程序中所有的组件。Gradle Scripts节点包含Gradle构建脚本,以供构建Android项目。
      app的三个节点分别是AndroidManifest.xml文件(AndroidMainfest.xml的清单文件用来描述应用程序,是必不可缺的。),Java应用程序和测试文件,res资源文件。

    R文件

    • 调试应用程序:最简单的是日志方法,任何异常的抛出包括栈轨迹都会显示在LogCat中;设置断点,在任意一行上单击,选择run>toggle line breakpoint,即可在代码中添加一行断点,然后择run>debug app
    • 删除支持的库

    活动

    • 活动的含义:活动是包含了用户界面组件的一个窗口,用户可以和这些用户界面组件交互,启动一个活动,往往意味着要显示一个窗口。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说启动一个活动就意味着显示一个窗口。
    • 修改应用程序图标
    • 启动另一个活动:用户从主屏幕选择APP图标时,祝活动通过系统自身而启动,再拥有多个活动的应用程序中,很有可能需要启动另一活动,这时便可以通过调用startActivity方法直接做到。如
    startActivity(intent)
    

    ,其中intent是Android.content.Intent类的一个实例。

    @Override
    public boolean onTouch(View arg0, MotionEvent event) {
        Intent intent = new Intent(this, SecondActivity.class);
        intent.putExtra("message", "Message from First Screen");
        startActivity(intent);
        return true;
    }
    

    启动另外的活动(Activity)

    UI组件

    • 使用Android Stutio UI工具:使用UI工具所做的事,都会反应到布局文件中去,以XML元素的形式体现出来。
    • 使用基本组件,OnCreate方法是一个生命周期方法,当创建应用程序的时候会调用它,onCreateOptionsMenu方法初始化了活动的选项菜单的内容。要让菜单显示,他必须返回为true。
    • Toast:Toast是一个小的弹出对话框,用于显示一条消息作为给用户的反馈,是暂时的。通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来

    makeshow()方法需要传入三个参数。
    第一个参数是Context,也就是Toast要求的上下文,由于活动本身就是一个Context对象,因此直接传入FirstActivity.this即可
    第二个参数是Toast显示的文本内容
    第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG

    • 通知:通知是出现在状态栏里的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者是关闭设备。创建通知
    NSNotification *notification = [NSNotificationnotificationWithName:@"refresh" object:niluserInfo:dictplist];
    

    可以这样理解:当你想在A activity中启动另一个B activity,那么你可以选择两种情况[立即启动或延时启动]:
    1.通过intent配置需要启动的B activity,然后调用startActivity()方法,让他立即执行启动操作,跳转过去
    2.另一种情况是,你虽然想启动另一个B activity,可是你并不想马上跳转到Bactivity页面,你想静等5分钟之后再跳转到Bactivity,那么你可以通过PendingIntent来实现,PendingIntent可以包装第1步中的intent,然后通过AlarmManager这个定时器,定制5分钟之后启PendingIntent,实现这种延时操作

    可以看看这个博客写了很多关于PendingIntent的解释PendingIntent详解

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

    • 问题1:当我直接将包复制粘贴到文件中后,Android里有文件,但是不能运行,右小角没有又可以运行的绿色提示

    • 问题1解决方案:不能把整个安装包复制粘贴,正确的方式是现在Android中new一个project,然后打开路径中的文件包,先导入AndroidManifest.xml文件,然后是src文件中的mainactivity文件,最后是res布局文件。

    • 问题2:menu文件报红,R文件报红

    • 问题2解决方案:menu文件主要是因为没有导入,但是如果想自己新建的话要注意menu布局文件要在menu文件夹地下创建才行,应该先在res文件夹右键,然后选择New>Android resource directory,出现界面后在Resource type下拉栏选择menu。接着在menu文件夹下右键,New>Menu resource file之后输入文件名就可以了 R文件报红的话主要是因为刚刚导入的xml文件导致的,大多都是图片的命名,一定要注意的图片的格式,不要将图片的名字改为xx.png,实际上还是没有改变图片的格式。解决办法是

    build-rebuild project不行的话再试试clean project
    

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

    • 问题1:不能git到码云上,在张昊然同学发的第12步就出现了请求被拒绝的error,我到底做错了什么,idea和as都喜欢拒绝我

      此处错误提示

    androidstudio can’t start git.exe
    
    • 解决方案1:

    这种问题可能是有两种:git.exe路径设置错误,或者没有安装git

    然而我安装了的,于是我换了一个博客 Push rejected: Push to origin/master was rejected打开Git Bash,然后进入相应的目录,然后敲git命令

    git pull origin master --allow-unrelated-histories
    

    你就可以将本地仓库中的推送到github中,使用如下的git命令

    git push -u origin master
    
    • 问题2:
    error running:please select Andriod SDK
    
    • 问题2解决方法:说是由于Android Studio异常关闭,使得某些配置文件损坏,因此需要在线更新SDK才能恢复被损坏的文件。解决办法如下:
      首先依次选择主菜单“File”——“Settings”,然后依次展开“Appearance & Behavior”——“System Settings”——“Android SDK”,在右边的设置界面编辑SDK的路径。如下图所示,单击SDK目录输入框右边的“Edit”链接(红框标注):

      单击“Edit”链接之后打开SDK的设置界面后目录保持不动,点击next》next后等待Android Studio下载成功后回到Android Studio的主界面,等待重编完成,即可正常执行Run app的操作了。

    代码托管

    上周考试错题总结

    1. 下列哪一种被认为是抽象数据类型?
      A . array
      B . reference variable
      C . any of the primitive types (e.g., int, double, char)
      D . vector
      E . all of the above
      抽象数据类型包括数据结构和操作和访问数据结构的方法。在这些列表中,只有向量将这两者结合起来。该数组是一个数据结构,但没有方法(例如插入方法或搜索方法),而引用变量和基本类型是数据,而不是数据结构。

    2. 抽象数据类型具有以下面向对象的特性?
      A . information hiding
      B . inheritance
      C . polymorphism
      D . message passing
      E . all of the above
      抽象数据类型封装数据结构和操作数据结构的方法,以便保留信息隐藏。

    3. 一个简单的线性表
      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. 数组是一种列表抽象数据类型
      A . true
      B . false
      数组是一种数据结构,可以用来存储值列表,但是数组没有已经实现的操作来执行列表操作,如添加到末尾或删除给定值

    5. 所有抽象数据类型都定义为Java类
      A . true
      B . false

    6. Linux Bash中,可以使用chomd 777 pdds命令修改文件pdds的权限,并使得其拥有者、拥有者所在的组和其他用户都拥有全部权限。
      A . true
      B . false
      chmod 777 pdds,不是 chomd 777 pdds………..????????好吧

    7. Linux Bash中,使用rm –r /dky/D命令强制删除/dky目录下所有D开头的文件。
      A . true
      B . false
      rm –f /dky/D

    8. Linux Bash中,查找五天之内src目录中删除的文件的命令是find /src/ -ctime -5。
      A . true
      B . false
      Linux find命令

    9. Linux Bash中,使用tar命令把文件dky打包成dky.tar的命令是tar –c dky.tar dky 。
      A . true
      B . false
      tar –cf dky.tar dky

    10. 在Ubuntu中,使用vim编辑器时,想要移动光标,除方向键之外,还可以依次使用hjkl键进行上下左右的移动。
      A . true
      B . false
      上下左右顺序依次是kjhl

    结对及互评

    写在评论里

    点评过的同学博客和代码

    • 本周结对学习情况
      • 21我们两个的Android都崩了好巧好巧,最后都好了好巧好巧

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


    是的

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/2 20/20
    第二周 329/500 2/3 18/38
    第三周 619/1000 2/5 22/60
    第四周 817/1734 2/7 38/98
    第五周 674/2408 1/9 30/128
    第六周 1136/2870 2/10 30/158
    第七周 1000/3791 1/11 32/190
    第八周 2662/6453 2/13 48/238
    第九周 782/7573 2/15 48/238
    第十周 201/7773 1/17 48/238
    第十一周 idea崩了....代码量回到之前的一半了�哭 2/18 48/238

    参考资料

  • 相关阅读:
    AWR报告-数据库概要信息(一)
    性能tips
    linux脚本随笔-01
    小和问题 和逆序对问题
    SpringMVC 学习笔记(拦截器的配置))
    删除eclipse Maven 进程 导致eclipse的workspace 启动不了
    SpringMVC 学习笔记(请求方法的返回值和参数)
    SpringMVC 学习笔记(处理器映射器的配置)
    (转)Maven 项目新建index.jsp报错问题
    MyBatis 学习总结(1)
  • 原文地址:https://www.cnblogs.com/amberR/p/9129213.html
Copyright © 2011-2022 走看看