java基础笔记01-基础篇

java基础笔记01-基础篇文 莫若吻 注 1 本文内容参考 李刚的 疯狂 Android 讲义 一书 2 此书适合有一定 Java 基础 初学 Android 的同学阅读与学习 我最近想巩固下 Android 基础知识就来拜读一下此书 3 本文笔记侧重于知识梳理 不侧重于讲解 如果有同学遇到不懂的知识点可以给我留言或者买书自行学习 4 如果你最近想参加面试 可以参考此文复习哦 安卓图标 png 一 第一章

大家好,我是讯享网,很高兴认识大家。



文 | 莫若吻


注:
1.本文内容参考 李刚的《疯狂Android讲义》一书。
2.此书适合有一定Java基础、初学Android的同学阅读与学习。我最近想巩固下Android基础知识就来拜读一下此书。
3.本文笔记侧重于知识梳理,不侧重于讲解,如果有同学遇到不懂的知识点可以给我留言或者买书自行学习。
4.如果你最近想参加面试,可以参考此文复习哦!

安卓图标.png

一.第一章 Android应用

1.Android平台架构及特性

Android系统的底层建立在Linux系统之上,Android平台由操作系统、中间件、用户界面和应用软件四层组成,采用一种被称为软件叠层(Software Stack)的方式进行构建。
这种软件叠层结构使层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合。当下层的层内或层下发生改变时,上层应用程序无须任何改变。

2.Android系统组成

Android系统主要由应用程序层、应用程序框架、函数库、Android运行时Linux内核等5部分组成。
1)开发Android应用程序(即Android APP)是面向底层的应用程序框架进行的。
2)Android运行时由Android核心库集Dalvik虚拟机2部分组成。每一个Android应用程序都运行在一个单独的Dalvik虚拟机内。
3)Dalvik虚拟机依赖于Linux内核提供的核心功能。
4)Linux内核提供了安全性、内存管理、进程管理、网路协议栈和驱动模型等核心系统服务。

3.Dalvik虚拟机与JVM的区别

  • Dalvik虚拟机并不遵守JVM(Java Virtual Machine)的规范,两者并不兼容。
  • JVM运行的是Java字节码(一般是.class文件);
    Dalvik运行的是专有的dex文件(Dalvik Executable)。
  • JVM直接从.class文件或JAR包中加载字节码后运行;
    Dalvik则需要通过DX工具将应用程序的所有. class文件译成.dex文件,Dalvik则运行.dex文件。
  • Dalvik虚拟机非常适合在移动端上使用;相对于PC或服务器上运行的虚拟机,Dalvik不需要很快的CPU计算速度和大量的内存空间。
  • JVM都是基于栈的,而Dalvik则是基于寄存器的。

4.Dalvik虚拟机的特点

  • 运行专有的.dex文件。
    专有的.dex文件减少了.class文件中的冗余信息,而且会将所有的.class文件整合到一个文件中,从而提高运行java基础笔记01-基础篇性能,而且DX工具还会对.dex文件进行一些性能优化。
  • 基于寄存器实现。
    大部分虚拟机包括JVM都是基于栈的,而Dalvik则是基于寄存器的。一般基于寄存器的虚拟机具有更好的表现,但在硬件通用性上略差。

5.AndroidManifest.xml清单文件

包括信息:

  • 应用程序的包名,该包名将作为应用的唯一标识。
  • 应用程序所包含的组件,eg:Activity、Service、BroadcastReceiver、ContentProvider等。
  • 应用程序兼容的最低版本
  • 应用程序使用系统所需的权限声明
  • 其他程序访问该程序所需的权限声明。
    eg:
 
讯享网 

6.Android组件简介

1)Activity和View

Activity是Android的四大组件之一。
Activity是Android中负责与用户交互的组件,只能通过setContentView(view);来显示指定组件。
View组件是所有UI控件、容器控件的基类,但view组件需要放到容器组件中或者使用Activity将其显示出来。
Note:ViewGroup是View的子类。

2)Service

Service是Android的四大组件之一。拥有独立的生命周期。
Service作用:一般用于为其他组件提供后台服务和监控其他组件的运行状态。
Service与Avtivity的区别在于:Service通常位于后台运行,一般不需与用户交互,因此Service没有图形用户界面。

3)BroadcastReceiver

BroadcastReceiver是Android的四大组件之一。广播消息接收器,对Android应用中其他组件进行监听。
注册系统级的监听事件有两种方式

  • 在Java 代码中通过Context.registReceiver();完成注册广播。
  • 在清单文件中使用<receiver …… />完成注册。

4)ContentProvider

ContentProvider是Android的四大组件之一。
ContentProvider为Android应用之间实现实时数据交换。
Note:一般与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResolver来访问数据。

5)Intent和IntentFilter

严格讲 Intent并不是Android应用组件。它是Android应用内不同组件之间通信的载体。
Note:Activity、Service、BroadcastReceiver三种组件之间的通信都以Intent作为载体,只使用时略有区别。

  • 启动一个Activity,使用Context的startActivity(intent);方法。
  • 启动一个Service,使用 startService(intent); 或者 bindService(intent,serviceConnection,intFlags);方法。
  • 触发一个BroadcastReceiver,使用sendBroadcast(intent); 或者sendStickyBroadcast(intent) 或者;sendOrderedBroadcast(intent,receiverPermission);方法发送广播。

显示Intent和隐式Intent:
显示Intent明确指定需要启动或者触发的组件的类名
隐式Intent只是指定需要启动或者触发的组件应该满足的条件

Note:隐式Intent需要通过IntentFilter实现,被调用组件使用IntentFilter来声明自身所满足的条件。


小讯
上一篇 2024-12-29 11:22
下一篇 2024-12-27 18:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4461.html