Android第一行代码笔记(一)

第1章 开始启程,你的第一行 Android 代码

  1. Android 系统架构:

    Linux内核层、系统运行库层、应用框架层、应用层

  2. 四大组件

    Activity, Service, BroadCast Receiver, Content Provider.

第2章 先从看得到的入手,探究活动

  1. 活动是一种可以包含用户界面的组件, 所有的活动都要在AndroidManifest.xml 中注册.

  2. 销毁一个活动:finish()Back键.

  3. Intent:

    Intent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent 一般可被用于启动活动、启动服务、以及发送广播等场景.

    • 显式Intent

      Intent intent = new Intent(FirstActivity.this, SecondActivity.class)
      startActivity(intent);
    • 隐式Intent

      指定action 和 category 等信息,然后交由系统去分析这个 Intent, 并帮我们找出合适的活动去启动.
      在标签下配置的内容,可以指定当前活动能够响应的 action 和 category.

      Intent intent = new Intent("com.example.activitytest.ACTION_START");
      intent.setData(Uri.parse("http://www.baidu.com"));

    • 向下一个活动传递数据

      添加数据: intent.putExtra("extra_data", data);
      取出数据:String data = intent.getStringExtra("extra_data");

    • 返回数据给上一个活动

      startActivityForResult(intent, 1);

  4. Activity生命周期

    • 生命周期
      image

    • 活动被回收了怎么办

      应用中有一个活动 A,用户在活动 A 的基础上启动了活动 B,活动 A 就进入了 停止状态,这个时候由于系统内存不足,将活动 A 回收掉了,然后用户按下 Back 键返回活 动 A,会出现什么情况呢?其实还是会正常显示活动 A 的,只不过这时并不会执行 onRestart() 方法,而是会执行活动 A 的 onCreate()方法.

      onSaveInstanceState()回调方法,在活动被回收之前调用,可以保存临时数据.

      • onSaveInstanceState()方法会携带一个 Bundle 类型的参数,比如可以使用 putString()方法保存字符串, 使用键值对的形式保存.
    • 活动的启动模式

    • standard: 每次启动都会创建该活动的一个新的实例,放入返回栈中.

    • singleTop:栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例.若不在栈顶,会重新创建Activity.

    • singleTask:每次启动该活动时系统首先 会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈.

    • singleInstance:会启用一个新的返回栈来管理这个活动.解决多个应用共享Activity实例的问题。

第3章 软件也要拼脸蛋,UI 开发的点点滴滴

  1. 常用控件

    TextView, Button, EditText, ImageView, ProgressBar, AlertDialog, ProgressDialog

  2. 布局

    • LinearLayout: vertical 或horizontal

    • RelativeLayout: android:layout_alignParentLeft…

    • FrameLayout: 所有控件都在左上角(重合)

    • TableLayout:

    • GridLayout:

    • AbsoluteLayout: 弃用

  3. ListView

    • 需要借助适配器来将数据传给ListView.

    • ArrayAdapter。它可以通过泛型来指定要适配的数据类型,然后在构造函数中把要适配的数据传入.

    • 借助一个 ViewHolder 来进行性能优化.

      新增了一个内部类 ViewHolder,用于对控件的实例进行缓存。所有控件的实例都缓存在了 ViewHolder 里,就没有必要每次都通过 findViewById()方法来获取控件实例了。

    • 点击事件:setOnItemClickListener()

第4章 手机平板要兼顾,探究Fragment

  1. Fragment与Activity通信

    • 调用 FragmentManager 的 findFragmentById()方法,可以在活动中得到相应Fragment的实例, 然后就能轻松地调用碎片里的方法了.

    • 每个Fragment中都可以通过调用 getActivity()方法来得到和当前Fragment相关联的Activity实例 .

  2. Fragment生命周期:

    • 总是依附于Activity存在.

    • 比Activity多的回调方法:

      1. onAttach() 当碎片和活动建立关联的时候调用。
      2. onCreateView() 为碎片创建视图(加载布局)时调用。
      3. onActivityCreated() 确保与碎片相关联的活动一定已经创建完毕的时候调用。
      4. onDestroyView() 当与碎片关联的视图被移除的时候调用。
      5. onDetach() 当碎片和活动解除关联的时候调用。

    image

第5章 全局大喇叭,详解广播机制

  1. 广播机制

    • 标准广播(Normal broadcasts): 异步
    • 有序广播(Ordered broadcasts): 同步,可截断
  2. 接收系统广播

    • 创建广播接收器: 新建一个类,继承自 BroadcastReceiver,并重写父类的 onReceive()方法.

    • 动态注册

      在代码中注册,注册的逻辑写在 onCreate()方法中.

    • 静态注册

      在AndroidManifest.xml中注册,比如实现开机启动.

  3. 发送自定义广播

    • 标准广播: sendBroadcast()
    • 有序广播: sendOrderedBroadcast()方
  4. 使用本地广播

    • 使用LocalBroadcastManager 来对广播进行管理.
    • 本地广播是无法通过静态注册的方式来接收的.
    • 发送本地广播比起发送系统全局广播将会更加高效.

第6章 数据存储全方案,详解 持久化技术

  1. 文件存储

    • 适合用于存储一些简单的文本数据或二进制数据.
    • 将数据存储到文件中

    Context 类中提供了一个 openFileOutput()方法
    out = openFileOutput("data", Context.MODE_PRIVATE);

  2. 从文件中读取数据
    Context 类中还提供了一个 openFileInput()方法
  3. SharedPreferences

    • 使用键值对存储
    • 将数据存储到 SharedPreferences 中
      • 首先需要获取到SharedPreferences对象(3种方法)
        • Context 类中的 getSharedPreferences()方法
        • Activity 类中的 getPreferences()方法
        • PreferenceManager 类中的 getDefaultSharedPreferences()方法
      • 开始存数据(3步):
        1. 调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象
        2. 向 SharedPreferences.Editor 对象中添加数据,比如putString()等.
        3. 调用 commit()方法将添加的数据提交.
    • 从 SharedPreferences 中读取数据
      • 通过SharedPreferences 对象,然后分别调用它的 getString()、getInt()和 getBoolean()等方法.
  4. SQLite数据库

- 创建数据库

- 升级数据库

- 添加数据

- 更新数据

- 删除数据

- 查询数据

- 使用SQL
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值