随笔分类 - 11_Android
摘要:AIDL进行线程间通信,随着项目规模的扩大,如果有多个业务模块都需要使用AIDL进行进程间通信; 如果按照AIDL的实现方式,需要一个个来实现,创建多个Service。 但这样有个问题,Service不能无限制地增加,Service是系统组件之一,本身就是系统资源。 太多Service会使得我们地应
阅读全文
摘要:Bundle 四大组件都是支持在Intent中传递Bundle数据的; 由于Bundle实现了Parcelable接口,所以它可以方便地在不同进程之间传输; 所以我们可以在Bundle中附加我们需要传输给远程进程的信息并通过Intent发送出去; 当然,前提是我们的数据必须能够被序列化:基本类型,实
阅读全文
摘要:Socket也叫做“套接字”;是网络通信中的概念; 分为流式套接字和用户数据报套接字两种,分别对应于网络的传输控制层的TCP和UDP协议; TCP协议是面向连接的协议,提供稳定的双向通信功能;本身具有超时重传功能,非常稳定; UDP是无连接的,提供不稳定的单向通信功能,UDP也是可以实现双向通信功能
阅读全文
摘要:ContentProvider是安卓提供的专门用于不同应用间进行数据共享的方式;它天生适合进程间通信; 和Messenger一样,ContentProvider的底层实现同样也是Binder; ContentProvider还是四大组件之一; 其实ContentProvider的使用涉及的细节还是很
阅读全文
摘要:Messenger是以串行的方式处理客户端发来的消息; 如果大量消息同时发送到服务端,服务端仍然只能一个个处理; 如果有大量的并发请求,用Messenger就不合适了; Messenger主要作用是传递消息,有时候我们需要跨进程调用服务端的方法; 这就需要AIDL来实现跨进程调用服务端的方法; 1、
阅读全文
摘要:通过Messenger可以在不同的进程中传递Messenger对象; Message放入我们需要传递的数据;就可以轻松实现数据的进程间传递; Messenger是轻量级的IPC方案;底层实现是AIDL; Messenger对AIDL做了封装,使得我们可以简便地进行进程间通信; 由于其一次处理一个请求
阅读全文
摘要:名称 优点 缺点 适用场景 Bundle 简单易用 只能传输Bundle支持的数据类型 四大组件间的进程间通信 文件共享 简单易用 不适合高并发场景,无法做到即时通信 无并发访问请教, 简单交换的数据实时性不高的场景 AIDL 功能强大,支持一对多并发通信, 支持实时通信 使用复杂些 一对多,RPC
阅读全文
摘要:【对象序列化】 Parcelable接口与Serializable接口: Parcelable和Serializable接口的用法和区别:https://www.cnblogs.com/jiefeiduan/p/3959411.html Parcelable的作用:https://www.jians
阅读全文
摘要:理解IPC,进程间通信之前先聊一下进程和线程; 进程是系统资源分配的单位,线程是系统调度的单位; 进程与线程是包含与被包含关系;一个进程可以包含多个线程; 最简单的情况下,一个进程中可以只有一个线程,即主线程; 对于安卓来说,主线程也叫做UI线程; 只有在UI线程里才能操作界面元素; 很多时候一个进
阅读全文
摘要:最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据。 【一、从原理角度出发】1、Activity生命周期和启动模式2、View的事件体系与工作原理3、四大组件的工作过程4、JNI和NDK编程 //5、线程与线程池 //多线程编程、线程同步问题、6、消息机制 //主要是讲
阅读全文
摘要:一、Activity和View Activity是Android应用中负责与用户交互的组件。 View是所有UI控件、容器控件的基类。View组件就是Android应用中用户实实在在看到的部分。 Activity为Android应用提供了可视化用户界面,如果该Android应用需要多个用户界面,那么
阅读全文
摘要:当代码量越来越大,类越来越多。尤其会增加同名类的风险。所以对类进行管理就显得非常重要。 包(package)机制是java中管理类的重要手段。 包名的命名方式:业内默认的做法是使用公司的网络域名的倒写来当做包名。 java中的包也起到命名空间的作用。相同命名空间不允许存在同名的类,不同的命令空间可以
阅读全文
摘要:一、Log介绍: Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志。 Log.v() 。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。 Log.d() 。用于打印一些调试
阅读全文
摘要:一、Gradle Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 面向Java应用
阅读全文
摘要:一、项目结构 成功运行第一个AS项目HelloWorld之后,我们开始试着分析一下这个项目。毕竟知其然也要知其所以然。 这是一个安卓的项目结构(实际上这是安卓模式的项目结构) 我们可以切换成Project模式的项目结构。这个才是项目真实的目录结构,安卓模式的项目结构是将该Project模式的项目结构
阅读全文
摘要:一、开发安卓程序需要具备一些开发工具,这里简单罗列一下: JDK :这是Java语言的开发工具包,包含了Java的运行环境、工具集合、基础类库等内容。 Android Studio:目前主流的安卓开发IDE。(以下简称AS) Android SDK:是谷歌提供的安卓开发工具包,我们需要通过引入该工具
阅读全文

浙公网安备 33010602011771号