2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 第十周 第十一周
html
1.概览:Android发展介绍:Android 操做系统是一种多用户的Linux系统,它使用Java做为编程语言。Anroid4.4以前,其应用程序在Dalvik的虚拟机上运行,Android5.0及之后版本,其源代码使用ART(Android RunTime)来执行。Android4.4是Dalvik和ART的转折点和分水岭。
APK表示应用程序包,它是一个基本的zip文件,可以使用unzip或Winzip来解压缩。apk文件能够在一台物理设备或模拟器上运行,部署一个Android应用程序很容易。java
Android编程中另外一重要概念是意图(intent):一条消息,发送给系统或另外一个应用程序,以要求执行一个动做。node
每一个应用程序必须有一个清单(manifest),以描述该应用程序,清单以XML文件的形式给出,具体内容结构见下面阐述。linux
集成开发环境(IDE),这里讲使用Android stutio这款IDE软件,这里讲述的其的下载安装及配置以及建立一个应用程序,这里将再也不进行讲述。android
应用程序结构:Project窗口包括两个主要的节点:app和Gradle Scripts。app节点包含了应用程序中全部的组件。Gradle Scripts节点包含Gradle构建脚本,以供构建Android项目。
app节点下包含以下3个节点:c++
(1)manifests,其中包含了AndroidManifest.xml。这是一个控制文件,用来描述应用程序。不一样的参数表示不一样的含义,例如“manifest”为根节点,描述了package中的全部内容;“application”元素能够包含application的一些全局和默认的属性,如标签、icon、主题等等;“activity”是与用户交互的主要工具,一般包含一个或多个activity元素,描述App中的各类活动。这一点在后面的任务中还有体现。编程
(2)java:包含了全部Java应用程序和测试类。vim
(3)res:存放了应用程序使用到的各类资源,如xml界面文件、图片、数据等。一般包含drawable子目录、layout子目录、values子目录三个。drawable:存放分辨率不一样的图片。layout:存放xml界面布局文件,主要用于显示用户操做界面。values:存放不一样类型的数据,如string、array等。c#
特殊说明(R类):R类的做用是让你可以引用代码中的一个资源。数组
1)layout下中的andoid:id、android:text等资源信息等
2)string对应的字段是res/values/strings.xml中的配置项信息(自动生成的,不须要认为的修改R类,包含id也同样)。
3)@color查找颜色:color对应的字段是res/values/colors.xml中的配置项信息(自动生成的,不须要认为的修改R类,包含id也同样)。
4)@drawable查找图片:只须要把png/jpeg/gif文件拷贝到新建的/res/drawable目录下,或者拷贝到工程新建的默认drawable-xx目录下
5)@dimen某个组件尺寸定义:须要在res/values/目录下新建一个dimen.xml文件.
apk文件:APK是AndroidPackage的缩写,即Android安装包(apk)。APK是相似Symbian Sis或Sisx的文件格式。经过将APK文件直接传到Android模拟器或Android手机中执行便可安装。
调试应用程序:设置断点,并经过Run > Debug app 调试程序。
Android SDK及建立虚拟设备以及物理设备的链接都已实践,再也不将其流程。
1.活动的含义:活动是包含了用户界面组件的一个窗口,用户能够和这些用户界面组件交互,启动一个活动,每每意味着要显示一个窗口。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说启动一个活动就意味着显示一个窗口。
2.主活动:应用程序所建立的第一个窗口,叫作主活动(main activity),它充当应用程序的入口点。要让一个活动成为一个主活动,其intent-filter元素必须包含MAIN的action和LAUNCHER的category。
5.使用Android资源
Android内容很丰富,它带有大量的资源可供使用。要浏览可用资源,在Android stutio打开应用程序清单,输入“@Android:”,后面跟着Ctrl+space组合键,从而填入属性值,便会显示出资源的列表。
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; }
这一实践已在实验过程当中完成,这里不在进行重复。
7.活动相关的意图
经过传递给意图一个活动类而构造的意图,叫作显式意图。也能够创做一个隐式意图,在这种状况下咱们没有指定一个意图类,相反,咱们给Intent类的构造方法传递一个动做,让系统来决定启动哪一活动,若是有多个活动能够处理,系统会让用户来进行选择。
1.Android SDK提供了叫做微件(widget)的众多简单的和复杂的组件。微件有不少例子,好比按钮、文本字段、进度条等。此外,还需选择一个布局来放置UI组件。微件和布局,都在android.view.View里实现。
2.使用Android Stutio UI工具
3.Toast
4.通知
NSNotification *notification = [NSNotificationnotificationWithName:@"refresh" object:niluserInfo:dictplist];
[[NSNotificationCenter defaultCenter] postNotification:notification];
(void)refresh:(NSNotification *)text { NSLog(@"%@",text.userInfo); self.dic = [[NSMutableDictionary alloc] initWithDictionary:text.userInfo]; NSLog(@"-----接收到通知------"); [self.leftTableView reloadData]; [self.rightTableView reloadData]; }
问题1:关于XML文件的具体的用法及各项的含义
问题1解决方案:查找相关资料内容,对书上的XML的内容进行了一些拓展补充,参见下面:
XML文件结构:
<?xmlversion="1.0"encoding="utf-8"?> <manifest> <application> <activity> <intent-filter> <action/> <category/> </intent-filter> </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/> </provider> <uses-library/> </application> <uses-permission/> <permission/> <permission-tree/> <permission-group/> <instrumentation/> <uses-sdk/> <uses-configuration/> <uses-feature/> <supports-screens/> </manifest>
结构分析:
三、第三层(Activity):属性
四、第四层(intent-filter)
五、第四层(meta-data)
六、第三层(activity-alias)属性
七、第三层(service)
八、第三层(receiver)
九、第三层(provider)属性
十、第三层(uses-library)
十一、第一层(supports-screens)
十二、第二层(uses-configuration )与(uses-feature)性能都差很少
1三、第二层(uses-sdk )
1四、第二层(instrumentation )
1五、(permission)、(uses-permission)、(permission-tree )、(permission-group )区别~
问题2:活动的生命周期的具体流程,书上的讲解可以理解,但书上的活动流程不齐全,并且不够简练。
问题2解决方案:下面的表格对每一个方法更详细的描述和在活动的整个生命周期中的定位。
这七个方法定义了活动的整个生命周期。有三个嵌套的循环,你能够经过这七个方法监视:
活动的整个生命时间,从第一次调用onCreate()开始直到调用onDestroy()结束。一个活动在onCreate()中作全部的“全局”状态的初始设置,在onDestroy()中释放全部保留的资源。举例来讲,有一个线程运行在后台从网络上下载数据,它可能会在onCreate()中建立线程,在onDestroy()中结束线程。 活动的可视生命时间,从调用onStart()到相应的调用onStop() 。在这期间,用户能够在屏幕上看见活动,虽然它可能不是运行在前台且与用户交互。在这两个方法之间,你能够保持显示活动所须要的资源。举例来讲,你能够在onStart()中注册一个广播接收者监视影响你的UI的改变,在onStop() 中注销。由于活动在可视和隐藏之间来回切换,onStart()和onStop() 能够调用屡次。 活动的前台生命时间,从调用onResume()到相应的调用onPause()。在这期间,频繁地在重用和暂停状态转换——例如,当设备进入睡眠状态或一个新的活动启动时调用onPause(),当一个活动返回或一个新的意图被传输时调用onResume()。所以,这两个方法的代码应当是至关轻量级的。
问题1:在进行修改应用图标时,插入图片时老是会出现错误,不管是png类型图片或是jpg类型图片,老是出现红线提示错误。
问题1解决方案:老是插入失败,后来问王志伟同窗,他说的是他的能够改,而后他又帮我试了几回,最后也是能插入了,这里以前出错的缘由是图片的名称的首个字符为数字,它要求的必须是英文字母才能进行修改,换了张图片之后就能够改了。
问题2:关于打开文件这里的一个问题,就是从网站上下载下来的课本上的代码的导入问题。
问题2解决方案:这里参见实验四博客中内容,这也算是书上的内容,也是课本上学习遇到的问题,关于这里修改了好久才改出来的。博客连接:20172302 实验四Android程序设计实验报告
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
解析:异构这个术语意味着元素是不一样的类型。在Java中,类能够存储异构类型,例如一个实例数据多是int,另外一个是String,第三个是double。另外一方面,数组是同构类型,由于数组中存储的每一个元素都是相同的类型。
2.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外部操做数据结构,而不须要其余面向对象的特性。
3.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,以及任何其余类型的数据。
4.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
解析:一个简单的线性列表被指向,从它的开始节点到它的结束节点。图和有向图都没有起始节点,可是树有:树的根。所以,一个简单的线性列表就是一个退化树的例子,它有一个分支因子为1,每一个节点只有一个继承,从根开始,到单叶结束(结束节点)。
5.An Abstract Data Type is a data structure, that is, it is the listing of the instance data and the visibility modifiers for those instance data.
A . true
B . false
解析:抽象数据类型包括抽象数据结构,但也包括访问和操做抽象数据结构的方法。
6.A linked list that contains 6 Nodes will have 6 reference pointers.
A . true
B . false
解析:为了访问链表,至少须要有第7个引用指针,一个引用链表中的第一个项的引用指针。
7.Trees and graphs, because they are dynamic in nature, cannot be implemented using Java arrays.
A . true
B . false
解析:任何给定的有一个固定大小的数组,所以最大电流的大小(节点数)的树或图仅限于其底层数组的大小,能够分配一个更大的数组,将原始数组中的元素复制到新数组,并继续以这种方式实现扩张。这种技术之因此成功,是由于Java数组是对象,访问全部对象的机制是经过引用实现的。在大多数其余语言(如C、c++、c#、Pascal等)中,数组都不是对象,所以这种技术将会失败。
8.A bi-directional list is an example of a non-linear data structure.
A . true
B . false
解析:虽然双向列表在每一个节点中都有多个连接,可是当您绘制双向列表的图片时,它仍然是线性的。
9.Linux Bash中,使用sudo apt-get upgrade
命令能够更新系统。
A . true
B . false
10.Linux Bash中,可使用chomd 777 pdds命令修改文件pdds的权限,并使得其拥有者、拥有者所在的组和其余用户都拥有所有权限。
A . true
B . false
解析:chmod 777 pdds,不是 chomd 777 pdds ,这道题目没看清楚。
11.Linux Bash中,使用apt-get search tree命令来查找是否系统装有软件tree。
A . true
B . false
解析:应使用apt-cache search tree
12.Linux Bash中,di1和di2是两个已存在的文件夹,则命令mv di1 di2表示将文件di1移动至文件di2内。
A . true
B . false
解析:网上查到的资料:mv 目录名 目录名 >>目标目录已存在,将源目录移动到目标目录;目标目录不存在则更名.
参考连接:Linux mv命令
13.Linux Bash中,查找五天以内src目录中删除的文件的命令是find /src/ -ctime -5。
A . true
B . false
解析:参考连接:Linux find命令
14.Linux Bash中,使用grep查找当前src目录下全部包含main函数的文件,并要求显示出现行号的命令是grep –n main /src
A . true
B . false
解析:应该使用的是grep –rn main /src
.
15.在Ubuntu中,使用vim编辑器时,想要移动光标,除方向键以外,还能够依次使用hjkl键进行上下左右的移动。
A . true
B . false
解析:上下左右顺序依次是kjhl
16.在Linux Bash中,用ls命令查看当前目录下文件并能够显示子目录下文件的参数是-R。
A . true
B . false
解析:参考连接:Linux ls命令
17.在Linux Bash中,man -k命令与apropos命令等价。
A . true
B . false
解析: 二者等价。
博客中值得学习的或问题:本周博客总结的比较认真,课本问题记录的很详细精确,可多些对教材内容总结,错题改正也可增长对问题的理解。
结对学习内容
共同窗习有关Android这一块内容以及Android的实验的进行。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 157/157 | 1/1 | 15/15 | |
第二周 | 382/539 | 1/2 | 16/31 | |
第三周 | 317/856 | 2/4 | 15/46 | |
第四周 | 996/1852 | 1/5 | 24/70 | |
第五周 | 578/2330 | 1/6 | 16/86 | 这周对上周第七章的学习有了更深的理解 |
第六周 | 475/2805 | 1/7 | 14/100 | 学习了数组方面的相关知识 |
第七周 | 629/3434 | 1/8 | 14/114 | 关于继承有必定认识 |
第八周 | 1567/5001 | 3/11 | 25/141 | |
第九周 | 428/5429 | 2/13 | 17/158 | 了解了递归内容并学习了IO流相关知识 |
第十周 | 893/6322 | 2/15 | 16/174 | 学习集合方面的知识 |
第十一周 | 0/6322 | 3/18 | 25/199 | 了解Android方面内容以及Android Stutio 的使用 |