《第一行代码》(2)整理读后笔记
来源:互联网 发布:电子文档软件 编辑:程序博客网 时间:2024/05/17 03:46
准备开始前
A: 先上图以给大家最直接的体验:
实现的功能类别图例:
图例1:
图例2:
B: 挑选了两个项目截图说明:
一个UI布局项目,图2(随意找的几个图片加载的):
天气预报小项目:图3
资料下载:
《第一行代码 2》书籍下载
http://download.csdn.net/download/u013472738/10007552
第一行代码(第二版)源码与目录 :
个人学习代码注释说明 +apk
http://download.csdn.net/download/u013472738/10006972
阅读安排:
第一弹:
读书计划时间:6天;开始于:8.17 号;
8.17号学习:
- 隐式意图:Intent
和显示意图的功能使用功能类似:都可传递参数和相应事件。 但是 隐式意图的配置不是在代码中配置的;主要是在清单文件(Mainfest)中配置的,(可以通过一个活动(Activity)启动另一个活动(Activity))
例如步骤:ActivityA 向 ActivityB中相应事件:
A: 在 ActivityB 的清单文件(Mainfest)配置中添加过滤配置:如:
<intent-filter> <action android:name="apps.tj.my.androidbook2test.TJTest_Intent" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.TJTest_Intent" /></intent-filter>
B: 在ActivityA 需要相应的地方,也就是传递信息的地方:即可。如下
Intent ist = new Intent("apps.tj.my.androidbook2test.TJTest_Intent") ; // its.addCategory("android.TJTest_Intent");//TJ:可以添加多个 相应意图startActivity(ist);
说明:
过滤器(Intent-filter) 中的:<cation android:name= “xxx.text.xxx”/>里面的:“xxx.text.xxx”;表示和隐式意图的绑定的数据,标签:category 说明是自己定义的一个相应配置。备注:隐式意图中Intent中的 参数可以有多个相应;使用标签:category
- 活动(Activity)的四种启动模式:
详情参考查看:
http://blog.csdn.net/shinay/article/details/7898492/
standard:
默认的启动模式,可以不用在Mainfest文件中配置;特点是:每次响应活动ActivityB都会重新创建一个新的实例;所以如果多次相应该实例;就会在堆栈中多次含有多个该实例。例如:ActivityA上面一个按钮 相应跳转ActivityB;当我多次点击这个按钮时;就会启动多个ActivityB 叠加在一起。
singleTop:
特点是:不同于standard模式;该模式下如果活动ActivityB处在栈顶(后进先出的原则)则多次相应ActivityB的时候;只创建一个该ActivityB实例。例如:ActivityA上面一个按钮 相应跳转ActivityB;当我多次点击这个按钮时;程序会判断当前ActivityB是否处在栈顶;如果是 那么就不再创建新的实例;反之如:ActivityA点击跳转到ActivityB,点击ActivityB中按钮跳转到ActivityC(这个时候ActivityC处在栈顶),再次点击ActivityC中的按钮跳转到ActivityB (这个时候ActivityB不在栈顶,ActivityC在栈顶)则创建另一个新的实例ActivityB。
singTask:
特点是:比singleTop 模式又进一步人性化;如果当前实例在同一个栈中;就不在创建。例如:ActivityA点击按钮跳转到ActivityB:这个时候多次点击ActivityA中的按钮都不会再新建一个ActivityB的实例;因为ActivityB已经在栈中存在。同样的:如果ActivityA点击按钮跳转到ActivityB 、ActivityB点击按钮跳转到ActivityC、ActivityC点击按钮跳转到ActivityB;这个逻辑中最后也跳转到ActivityB的时候也不会重新新建一个实例;因为 ActivityB已经在栈中。所以 只要活动在栈中就不会在后面的再次调用中重新创建一个实例了。
singleInstance:
不同于上面的三种模式的本质是:上面的三种默认都是在同一个栈中操作的; 而singleInstance模式是新建了一个栈进行操作的,并且只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。特点是:上面的三种默认都是在同一个栈中操作的; 而singleInstance模式是新建了一个栈进行操作的。例如:ActivityA和ActivityC是上面三种模式的任一种,而ActivityB是singleInstance模式,如果ActivityA点击按钮跳转到ActivityB(新建自己的唯一栈和唯一实例),然后ActivityB点击按钮跳转到ActivityC(这个时候ActivityA和ActivityC处在同一栈中);那么这个时候在ActivityC中点击返回、首先返回的同一栈的ActivityA、再点击返回才会返回到ActivityB。这个是最简单的一种操作方式,在这个模式中还主要涉及到另外其他的活动都打开ActivityB 这个操作会复杂些。
在Mainfest.xml的活动汇总配置方式例如:
android:launchMode="standard"
- 在Android开发过程中 文本的大小一般使用像素单位是:sp(更完美的适配各种屏幕大小)。
- Activity父类管理器:BaseActivity
开发项目中为了更好的管理活动(Activity) 比较方便的做法是 让活动都继承一个父类的活动(BaseActivity);如果方便更好的处理全部的活动的退出,那么就需要一个活动的管理器(ActivityCollectors.java)便于程序在任何想要退出的地方都能退出。
第二弹:
Ok———–8.17号学习完。
第一弹大致看到160页
也是看完了150页的量;考虑到 时间问题(学习到凌晨6点…)下一学习计划有代码调试测试:
- RecyclerView 测试(完美替代ListView)
- fragment碎片化测试。(当下测试到第160 ;后面的新闻客服端 稍后要测试,巩固)外加需要新学习:50页;到210页以上。
- 广播:
A:系统广播:全局广播(所有的应用都能接收到)
动态注册:只能在程序打开后才能访问激活,能在代码中关闭。静态注册:最大区别是程序不用打开就能接收到:比如开机自启动功能。
B:自定义广播:可以是全局广播(其他三方程序也能访问)
特点:自己可以动态或者静态注册广播 ;想怎么定义就怎么定义。灵活。
C:本地广播:只能使用在当前项目中。
特点:最大不同就是只能在该项目中使用;其他三方程序不能访问到。
- onResume():
onResume()是当该activity与用户能进行交互时被执行,用户可以获得activity的焦点,能够与用户交互。这也解释了 为什么 章节:5.5强制下线为什么是在父类的:onResume()方法中接受广播;因为这个时候的活动是处在栈顶的(也就是用户看到的界面和能操作的界面。)
- SharePreferences存储:可以很好并且简易的存储 数组数据集合内容。
说明:Git暂时还是使用的可视化的SmartGit操作上传和管理代码。
第三弹:
Ok———–8.18号学习完。
第二弹大致看到211页完成计划。下一个学习计划: 80 页。
8.19号学习…
- 数据库 :LitePal 库:这个到后面会整理一份到CSDN上面。
- ContentPrivate 跨进程(项目)共享数据:项目一就是当前的项目;项目二是同一级目录下的:TestContentPrivates项目。 完美测试+注解 。
第四弹:
Ok———–8.19号学习完。
第三弹大致看到291页完成计划。下一个学习计划: 80 页。
- 工作时间部分。
- 抽出下班后时间 学习部分内容。
说明: 工作项目维护,优化项目内容。
第五弹:
Ok———–8.20号学习完。
第四弹大致看到371页完成计划,下一个学习计划:30页。
学习前要求:
完成“下载示例”小项目;(从:P366 页开始了。)
第六弹
Ok———–8.21号学习完。
第五弹大致看到408页完成计划。
调整时间:——-不计在计划内天数。
原因是:到SS2-EAST 团建去了。
下一个学习计划:看完第12章节;(代码适当)大概50页。
学习内容:完成“下载示例”小项目;(从:P366 页开始了。)但是运行有bug;解决。
圆形图片优化库: circleimageview :
https://github.com/hdodenhof/CircleImageView- 完美完成第12章节全部内容;很不错的界面效果。
- runOnUiThread 的用处和 Handler的区别。
- 天气项目中可以使用必应的每日一图作为背景;(考虑)
- 学习完了第14章内容;并写完了代码;只是代码有点瑕疵…要调试看看。
第七弹
最后一弹:最后一章学习。
- 优化上一弹的问题;
- 理解窗口:android:fitsSystemWindows=”true”
- 解决背景和状态栏没有融合到一起:SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
参考:
http://blog.csdn.net/stevenhu_223/article/details/12428591 - 安全起见:在Release版本中明文签名信息最好配置在:根目录下的:gradle.properties中。
本书阅读完。 意犹未尽啊。
终于有时间简单整理了一下个人的学习路线了;
值得高兴的是:《Android源码 设计模式》一书阅读也接近尾声了…….
此文章只为记录个人曾经的学习路线,或者对 作为读者的你 的参考意义不大;
但是 个人感觉:学习 是我们每个人应该坚持的。坚持学习;拥有成长。
- 《第一行代码》(2)整理读后笔记
- 读《第一行代码》笔记
- 第一行代码笔记2
- 第一行代码笔记2
- 第一行代码-笔记
- 《第一行代码》笔记
- 第一行代码笔记
- 【Android】读《第一行代码》笔记总结
- 第一行代码,第三次读后笔记,全书的目录摘要。
- 第一行代码笔记2:广播
- Android--第一行代码笔记(2)
- Android第一行代码笔记<2>
- 第一行代码(2)第一章笔记
- 第一行代码+Android+第2版 笔记第三天
- 《Android第一行代码》笔记
- 《第一行代码Android》笔记
- 第一行代码笔记1
- 第一行代码笔记3
- 深度学习基础(五)--聚类
- Maven工程中nexus私服配置
- C++的静态成员函数指针
- 使用HTML/CSS写注册界面
- Flask项目配置文件
- 《第一行代码》(2)整理读后笔记
- 201710032355->使用静态方法记录窗体加载
- bzoj2761 [JLOI2011]不重复数字
- Spark开发-RDD接口编程
- MyBatis映射器使用注意事项
- java版云笔记(八)之关联映射
- Java编程思想读书笔记——多态
- Tensorflow实战Google-第五章mnist数字识别
- SpringBoot--5分钟搭建的微服务