《第一行代码》总结之简介、Activity(一)
第一行代码安卓-第二版
作者:郭霖
霖神是敬佩的大佬,对安卓有兴趣,读了这本书后,对其知识点作了一定总结,希望能够帮助到后面学习的人。写的比较笼统,还望勿喷。打算花上三周时间把这本书刷一遍总结。
Chap1开启行程——你的第一行代码程序
1.1.了解全貌-Android王国简介
(1)Android系统架构:
从下往上分别是:Linux内核层、系统运行库层(C/C++库、Android系统运行时库)、应用框架层(Android自带API)、应用层。
(2)Android应用开发特色:
Android自08年9月发布1.0,17年已推出Android 8.0(Oreo)。
开发特色包括了:
1.四大组件(Activity<活动>、Service<服务>、Broadcast Receiver<广播接收器>、Content Provider<内容提供器>);
2.丰富的系统控件(第二章会细说);
3.SQlite轻量级数据库(支持SQL语法及Android封装API都可以),其实还可以用霖神的LitPal;
4.强大多媒体(音乐、视频、拍照等);
5.地理位置,GPS(LBS)。
1.2.手把手搭建开发环境
开发环境为JDK8+SDK+Android Studio,搭建过程参考书籍。
1.3.文件结构:
1.需要关注的有local.prorerties(SDK、NDK路径,自动生成)、app目录下的libs(引入的第三方jar包)、java(所有java代码)、res(图片、布局、字符串资源等)、AndroidManifest.xml(程序定义的四大控件+权限说明***)、build.gradle(app的gradle构建脚本***)。
2.res目录下有drawable(图片)、mipmap(应用图标)、values(字符串、样式、颜色)、layout(布局文件)。
1.4前行必备——掌握日志工具的使用
Log.v(),打印较为琐碎、意义最小的日志工具;
Log.d(),打印一些调试信息;
Log.i(),打印一些比较重要数据,分析用户行为数据;
Log.w(),打印一些警告信息,潜在的风险;
Log.e(),打印错误信息。
Chap2 先从看得见的入手——探究活动
2.1.活动是什么
包含用户界面的组件,主要用于和用户进行交互。
2.2.活动的基本用法
(1)Android程序讲究逻辑与视图分离;
(2)android:id 元素当前唯一的标识符l android:width 元素宽度 android:height 元素高度。
(3)wrap_content 当前元素刚好包括里面东西
Fill_parent 填满父类容器。
(4)setContentView()方法给当前活动加载一个布局,必须要在AndroidManifest.xml中注册,但AS已经帮我们动态注册。
(5)Toast方法,较为简单。Toast.maketext().show()。
(6)在活动中使用Menu
1.res目录下创建menu文件夹,创建Menu Resource file。添加item菜单项,菜单项包括了id与titile两个label。
2.重写OnCreateOptionMenu方法来加载布局。重写onOptionItemSelected方法来定义响应事件。P39
(7)销毁一个活动:Back键或finish方法。
2.3 使用Intent在活动之间穿梭
(1)使用显式Intent
Intent是Android程序中各组件之间的一种交互方式。用于启动活动、服务以及发送广播。
Intent intent = new Intent(MainActivity.this,SecondActivity.clalss);
startAcitvity(intent);
(2)使用隐式Intent
1.在xml中设置,<action>标签指明了当前活动可以响应com.nwu.hzk.ACTION_START这一活动,在隐式调用时必须加上<category>标签为android.intent.category.DEFAULT。这样才能得到隐式Intent的响应。
2.系统去分析这个Intent,并找出合适的启动活动去启动。启动方法大致与显式相同,
Intent intent =new Intent(“com.nwu.hzk.ACTION_START”);
startActivity(intent);
3.更多隐式Intent的用法,比如调用浏览器,也可以用来打电话。
Intent intent =new Intent(Intent.ACTION_VIEW);
//指定Action为ACTION_VIEW
Intent.setData(Uri.parse(“http://www.baidu.com”));
//将Uri对象传递进去
startActivity(intent);
(3)发送接受数据
1.传递数据:intent.putExtra(“extra_data”,data);第一个参数为键,第二个参数才是真正要传递的数据。
2.在另一个Activity中接收数据。
Intent intent = getIntent();
String data=intent.getStringExtra(“extra_data”);
//getIntent()用于启动该Activity的Intent,然后传入相应键值获取数据。
3.返回数据给上一个活动
FirstActivity中startActivityForResult(intent,1);//1为请求码
SecondActivity中增加setResult(RESULT_OK,intent);//专门向上一个活动来返回处理结果。
2.4 活动生命周期
其是一个返回栈。
(1)活动状态
共有四种:运行状态(位于栈顶时)、暂停状态(不再处于栈顶,但仍然可见)、停止状态(不再处于栈顶且完全不可见)、销毁状态(从返回栈移除)。
(2)活动生存期
OnCreate方法在活动第一次创建时候被调用;onStart方法由不可见变为可见时调用;onResume活动准备好与用户进行交互时;onPause方法另一个活动来到前台,部分可见;Onstop活动完全不可见;onDestroy方法活动被销毁之前调用;onResart方法调用之前的活动。可以尝试log输出重写方法体验一把这过程。注意Dialog必须继承自Activity而非AppCompatActivity。
(3)活动启动方式
通过在AndroidMAnifest.xml中<Activity>标签中指定android:launchMode来确定启动方式。
1.standard:
默认方式,采用栈的方式进行存储。
2.singleTop:(解决重复创建栈顶活动问题)
若在启动时发现栈顶已是该活动,因此直接使用该活动,而不用再创建。
3.singleTask:
若启动活动未在栈顶,则还是有可能创建多个活动,解决可能创造多个实例的问题。
4.singleInstance
处理其他程序与我们程序共享这个活动的实例。
(四)活动最佳实践
1.知晓在当前哪一个活动
改变继承关系.
2.随时随地推出程序
专门集合类对所有活动进行管理,动态数组,并建立添加、删除、结束活动方法。
3.启动活动最佳写法。
在MAin2Activity中设置启动活动的方法,并方法参数形式传递过来,设置Context.startActivity(intent)来调用。
在MAin2Activity中一行代码启动Activity。
《第一行代码》总结之简介、Activity(一)相关推荐
- Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列目录
本文转载自: http://www.cnblogs.com/debuglife/p/4355687.html 作者:DebugLife 转载请注明该声明. 前言(Prologue) 本系列将使用 An ...
- android studio生命周期代码,Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期...
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android第一行代码-Activity
文章目录 Android第一行代码 Activity 1.Activity基本用法 2.创建和加载布局 加载布局(在Activity中加载布局) 在AndroidManifest文件中注册(所有的ac ...
- Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- 第一行代码第一章——你的第一行Android代码
第一行代码第一章-你的第一行Android代码 知识点目录 1.1 了解全貌--Android王国简介 * 1.1.1 Android系统架构 * 1.1.2 Android已发布的版本 * 1.1. ...
- 第一行代码第三版笔记
第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...
- 第一行代码——第十三章:继续进阶——你还应该掌握的高级技巧
目录: 13.1 全局获取 Context的技巧 13.2 使用 Intent传递对象 13.2.1 Serializable 方式 13.2.2 Parcelable 方式 13.3 定制自己的日志 ...
最新文章
- 个推数据统计产品(个数)iOS集成实践
- 泊松分布的分布函数_第114讲 SAS泊松分布与泊松回归
- python新手程序员工资-程序员吐槽新同事:连我实习水平都不到,工资是我的1.7倍...
- 乖离性暗机器人_乖离性百万亚瑟王国服超弩暗机器人如何打|乖离性百万亚瑟王国服超弩暗机器人平民打法攻略分享_好特教程...
- [Redux/Mobx] Redux中异步action和同步action最大的区别是什么?
- linux sdb目录,linux – / dev / sdb:没有这样的文件或目录(但是/ dev / sdb1等存在)...
- 2020-12-08
- html全屏代码怎么写,JS实现全屏的四种写法
- Linux卸载JDK(虚拟机自带JDK)
- origin中画1:1线
- 樱(桜) - 堀江由衣 (日语-中文-罗马)
- 用matlab求系统幅度频率响应,matlab频率响应
- 只需3步把VSCode打造成Markdown编辑器
- TextView下划线的添加,控制下划线和文字的距离
- OBS Studio 27.0.1版本编译
- image.fromstream 参数无效原因分析及解决
- 【设计模式】Builder模式
- java 维基百科_wikipedia
- spring全集 - - - 第五章RESTful开发
- Buildroot编译单个模块
热门文章
- 理解事务四大特性(Transaction)——原子性、一致性、隔离性和持久性(ACID)
- 《软件体系结构》知识点整理
- @Valid使用详解
- 全选、删除、撤回、剪切、复制、粘贴、永久性删除、新建文件夹、启动任务管理器、退出的快捷键
- classD类和classAB类功放区别
- AWD平台搭建与使用入门
- Oracle查询数据提示ORA-00942:表或视图不存在
- Lua语言历险记1.1——最简单最便捷的安装编译环境方式
- java面试分为_【中软国际Java面试】面试分为两轮。-看准网
- 利用Redis原子计数器incr实现计数器及接口限流