第一行代码安卓-第二版

                                                                                           作者:郭霖

霖神是敬佩的大佬,对安卓有兴趣,读了这本书后,对其知识点作了一定总结,希望能够帮助到后面学习的人。写的比较笼统,还望勿喷。打算花上三周时间把这本书刷一遍总结。

 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(一)相关推荐

  1. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  2. Android Studio 单刷《第一行代码》系列 03 —— Activity 基础

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  3. Android Studio 单刷《第一行代码》系列目录

    本文转载自: http://www.cnblogs.com/debuglife/p/4355687.html 作者:DebugLife 转载请注明该声明. 前言(Prologue) 本系列将使用 An ...

  4. android studio生命周期代码,Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期...

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  5. Android第一行代码-Activity

    文章目录 Android第一行代码 Activity 1.Activity基本用法 2.创建和加载布局 加载布局(在Activity中加载布局) 在AndroidManifest文件中注册(所有的ac ...

  6. Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础

    前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

  7. 第一行代码第一章——你的第一行Android代码

    第一行代码第一章-你的第一行Android代码 知识点目录 1.1 了解全貌--Android王国简介 * 1.1.1 Android系统架构 * 1.1.2 Android已发布的版本 * 1.1. ...

  8. 第一行代码第三版笔记

    第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...

  9. 第一行代码——第十三章:继续进阶——你还应该掌握的高级技巧

    目录: 13.1 全局获取 Context的技巧 13.2 使用 Intent传递对象 13.2.1 Serializable 方式 13.2.2 Parcelable 方式 13.3 定制自己的日志 ...

最新文章

  1. 个推数据统计产品(个数)iOS集成实践
  2. 泊松分布的分布函数_第114讲 SAS泊松分布与泊松回归
  3. python新手程序员工资-程序员吐槽新同事:连我实习水平都不到,工资是我的1.7倍...
  4. 乖离性暗机器人_乖离性百万亚瑟王国服超弩暗机器人如何打|乖离性百万亚瑟王国服超弩暗机器人平民打法攻略分享_好特教程...
  5. [Redux/Mobx] Redux中异步action和同步action最大的区别是什么?
  6. linux sdb目录,linux – / dev / sdb:没有这样的文件或目录(但是/ dev / sdb1等存在)...
  7. 2020-12-08
  8. html全屏代码怎么写,JS实现全屏的四种写法
  9. Linux卸载JDK(虚拟机自带JDK)
  10. origin中画1:1线
  11. 樱(桜) - 堀江由衣 (日语-中文-罗马)
  12. 用matlab求系统幅度频率响应,matlab频率响应
  13. 只需3步把VSCode打造成Markdown编辑器
  14. TextView下划线的添加,控制下划线和文字的距离
  15. OBS Studio 27.0.1版本编译
  16. image.fromstream 参数无效原因分析及解决
  17. 【设计模式】Builder模式
  18. java 维基百科_wikipedia
  19. spring全集 - - - 第五章RESTful开发
  20. Buildroot编译单个模块

热门文章

  1. 理解事务四大特性(Transaction)——原子性、一致性、隔离性和持久性(ACID)
  2. 《软件体系结构》知识点整理
  3. @Valid使用详解
  4. 全选、删除、撤回、剪切、复制、粘贴、永久性删除、新建文件夹、启动任务管理器、退出的快捷键
  5. classD类和classAB类功放区别
  6. AWD平台搭建与使用入门
  7. Oracle查询数据提示ORA-00942:表或视图不存在
  8. Lua语言历险记1.1——最简单最便捷的安装编译环境方式
  9. java面试分为_【中软国际Java面试】面试分为两轮。-看准网
  10. 利用Redis原子计数器incr实现计数器及接口限流