周总结

周总结

一周总结报告

8/9-8/13这一周主要是自测的学习和实践、完成小应用以及java的学习。

1.自测

自测学习过程中了解到设备类别的区分,分为公开版和软银版:公开版的侧边有孔,软银版的没有,现在测试都是测公开版本的。看着别人演示时,觉得很简单,按着操作一步步往下。但是轮到自己实践,就发现总是有那么几个地方不记得该怎么操作,还是实践出真知。自测的实践过程中除了有一些记忆模糊的地方,其他都还算顺利,根据测试任务一步步往下完成。

2.小应用

完成小应用的过程中了解学习到很多,一开始代码中直接写上手机内部储存中的某个文件夹路径,但是页面中没有显示图片,百度查询了发现是需要在AndroidManifest中申请权限,在AndroidManifest.xml中添加了两行代码申请内存读写权限。运行之后发现还是不行,询问之后了解到需要动态申请权限。在android6.0以上,有些权限申请仅仅在androidmanifest.xml里面静态申请是不够的,还需要动态申请。网上搜索如何动态申请权限,依照官网的写法在java代码中写动态申请权限的逻辑:

 

由于判断语句,其实实际上当用户拒绝一次权限申请后,再次调用方法,不会再出现申请权限对话框。而如果不把权限写在数组里,而是每条权限放在一个多个以下方法里一起调用,实际上,每次一起调用这多个方法,实际只申请这些方法的一条权限。

显示所有图片与显示所有txt和音乐相比较难,就选择先显示出txt与音乐的文件名。创建一个List集合储存指定文件夹内的所有文件名(即各个文件路径),再使用ListView在页面上以列表的形式展示出来。显示所有图片时需要使用RecyclerView显示,RecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。一开始我只会使用Bitmap显示一张图片出来,询问后发现只要在onBindViewHolder中传入ViewHolder及其位置就可以显示所有图片:

    所有图片能显示了,但是一个屏幕只显示一行图片,上下之间的间距太大了,很不美观,网上搜索设置RecycerView控件之间间距的方法,有些麻烦,就直接在布局里面更改了,发现也可以实现:

    还剩下最后一个自启动的任务,发送广播,开机时系统能收到发送的toast消息,但是开机后应用就是没有自启动,询问后了解到是系统里面人为拦截了,但是com.联想开头的包名的应用不去拦截,就将包名“com.example”改为“com.lenovo”,然后m10机器上运行就可以实现开机自启动了。原因是系统中有个白名单机制,包名是“com.android”和“com.lenovo”还有白名单内的不被拦截。

最后完成的效果图:

    3.java

Java的学习在看计划中的《Java核心技术 卷1 基础知识》的Java的基本程序设计结构章节,进度有些慢,需要加快,将所勾选的章节浏览完。