
Android基础
文章平均质量分 81
Calvin880828
关注Android最新技术,开发Android相关的技术
展开
-
深入Android系统基础知识及基本概念
Android应用程序的基本组成部分,包括Activities(活动)、Services(服务)、Broadcast receivers(广播接收器)和Content providers(内容提供者)。在深入讨论这些组件和Android操作系统之前,作者提出了先了解一下Android用户的操作行为。Android手机上的应用程序列表以及与应用程序相关的基本操作。用户可以点击应用程序图标来打开应用程序,还可以使用导航栏中的图标在"返回"、"主屏幕"和"最近使用的应用程序"之间进行导航。原创 2023-09-16 17:26:54 · 1157 阅读 · 0 评论 -
Compose – List / Detail: Basics实现
在androidx中有可以实现折叠屏的列表详情功能,但在Compose 中还没有官方的实现,那么下面我们用Compose做一些实现。原创 2023-02-28 10:10:16 · 848 阅读 · 0 评论 -
Android SlidingPaneLayout实践
可折叠设备在这里这一事实是无法回避的。在应用程序开发方面,它们带来了一些新的挑战。其中之一是可折叠设备的外形尺寸会根据折叠状态而变化。Android在设计上支持不同的外形尺寸,因此这很容易处理。但是,有一个新的Jetpack库可以使事情变得更容易:主要用例是不同的屏幕尺寸需要不同的用户体验。这方面的经典示例是列表/详细信息界面。列表和详细信息窗格在较大的显示器上并排显示。但列表窗格在较小的显示器上全屏显示。单击列表项后,将详细信息窗格全屏显示。原创 2023-02-28 09:32:12 · 822 阅读 · 0 评论 -
Kotlin1.8新特性
kotlin1.8.0新特性原创 2023-02-25 17:52:44 · 2582 阅读 · 0 评论 -
Android新启动模式之singleInstancePerTask
taskAffinity是指Activity的任务栈亲和度,即任务归属,代表该Activity属于哪个任务栈。使用场景:1.一般根据taskAffinity重新为Activity选择宿主任务栈(与allowTaskReparenting属性配合使用)2.启动一个Activity过程中Intent使用了FLAG_ACTIVITY_NEW_TASK标记,根据taskAffinity查找或创建一个新的具有对应taskAffinity的任务栈。原创 2023-02-21 10:28:03 · 3669 阅读 · 0 评论 -
Android总线之LiveDataBus
LiveDataBus是用LiveData实现的事件总线工具类,用于实现数据传递,实现Android组件之间、组件与后台线程之间通信,可用来替换EventBus。原创 2023-02-20 19:39:37 · 2534 阅读 · 0 评论 -
Android中Java package的DOC API文档生成过程
DOC API文档生成过程1 工具使用及设置2 javadoc工具3 如何快速打开SDK中类及方法文档4. 方法及类注释5. gradle中javadoc配置6. 参考1 工具使用及设置AS中集成了javadoc工具,可以通过简单设置生成doc Api文档。可以参考stackflow上一篇问答如何通过AS生成Java Doc APIgenerate-javadoc-error-android-studio工具入口:Tools -> Generate Java Doc…工具设置:原创 2020-12-10 18:23:19 · 833 阅读 · 0 评论 -
一文搞懂Google Gson使用
文章目录一.基本使用1.1 Gson实例化方法1.2 生成json1.3 Json与数组、List的转化1.4 序列化与反序列化二. 属性重命名三. 字段过滤3.1 基于@Expose注解3.2 基于版本3.3 基于访问修饰符3.4 基于策略四. 个性化配置4.1 输出 null4.2 格式化输出Json4.3 格式化时间五. TypeAdapter六. JsonSerializer 和 JsonDeserializer七. TypeAdapterFactory八. Json插件 ——GsonFormat以原创 2020-11-10 14:47:43 · 895 阅读 · 0 评论 -
Android7.0通过FileProvider访问文件
Android 7.0 行为变更 通过FileProvider在应用间共享文件吧转载 2020-10-27 16:22:33 · 344 阅读 · 0 评论 -
Java及Android反射详解
Java/Android反射1.简介2. 基本反射语法2.1 根据一个字符串得到一个类2.2 获取类构造函数2.3 获取类的私有实例方法并调用它2.4 获取类的静态私有方法并调用它2.5 获取类的私有实例字段并修改它2.6 获取类的私有静态字段并修改它2.7 泛型类反射3. jOOR3.1 获取并调用类的构造函数3.2 获取类的私有实例方法3.3 获取类的私有静态方法3.4 获取类的私有实例字段3.5 获取类的私有静态字段3.6 泛型反射4. 反射语法封装4.1 反射构造方法并实例化4.2 反射并调用实例方原创 2020-09-08 16:03:25 · 850 阅读 · 0 评论 -
Android软键盘遮挡EditText问题
最近在调试App过程遇到软件盘遮挡EditText的问题,特记录下问题的解决过程在4.4版本上,如果EditText设置了gravity=“center|right”其中之一且同时设置android:windowSoftInputMode="stateHidden|adjustPan",就会导致屏幕底部的EditText连续点击弹出键盘时,从第二次开会一直遮挡住EditText。在5.0+版本上不存在该问题,这可能是早期版本的Bug。输入法的行为还与状态栏的状态有关联,比如说沉浸式、全屏及是否透明。正原创 2020-08-27 10:23:33 · 1564 阅读 · 3 评论 -
Android混淆指南
Android代码混淆指南1.不做混淆的包或者类2. AS 中如何配置混淆3.常用混淆配置Android代码混淆的目的是为了提高代码安全性,避免被反编译1.不做混淆的包或者类如果使用了三方包,如果不做混淆配置则很可能出错,出现类似下面这样的报错Warning: can’t find superclass or interfaceWarning: can’t find referenced...原创 2019-03-27 09:40:03 · 319 阅读 · 0 评论 -
Android事件分发机制
事件分发分为捕获阶段和冒泡阶段,捕获阶段事件由外部接收传递给内层View,冒泡阶段事件由事件源的最小View开始,依次向外传递。Android事件传递分为分发、拦截和响应,并且在每一层可以得到控制。Activity不具有事件拦截,没有子View的ViewGroup不具有事件分发和拦截,因为它没有子View。OnTouch是Android系统事件机制的基础。其他事件,如OnClick和OnLo...原创 2018-11-06 11:13:21 · 272 阅读 · 1 评论 -
Android Service总结
摘要1.Service AndroidManifest.xml 声明2.Started Service摘要Service通常总是称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件:1.并不依赖于用户可视的UI界面(当然,这一条其实也不是绝...转载 2018-05-24 09:53:17 · 163 阅读 · 0 评论 -
android总结系列:Broadcast
概念使用场景具体实现流程概述注册方式广播发送及广播类型注意事项概念Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。sendBroadcast指的是广播发送者。 从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。因此,从实现的角度来看,An...原创 2018-05-26 00:01:24 · 697 阅读 · 0 评论 -
Android总结系列:Service
1.Service是什么?Service通常称为“后台服务”,不依赖UI界面,通常适用于下面条件:1. 并不依赖于用户可视界面(前台Service与Notification结合使用除外)2.具有较长时间的运行特性。Service启动方式两种:startService与bindServiceService在AndroidManifest.xml中声明属性介绍 android:expor...原创 2018-05-25 20:24:46 · 240 阅读 · 0 评论 -
Android基础总结(一)
1. AndroidManifest标签重点汇总<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.base.module.recorder" android:versionCode="1" android:versionName="1.0" ...原创 2018-05-25 11:25:51 · 306 阅读 · 0 评论 -
Android.mk文件分析
1.Android.mk简介2.实例分析3.字段分析1.Android.mk简介一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。 ...原创 2018-03-06 23:04:26 · 367 阅读 · 0 评论 -
Android系统启动流程
1. 启动linux,加载linux kernel并启动初始化进程init2. init进程,解析rc文件,启动进程,其中init.rc文件中有很多service,包括 zygote 等3. zygote中启动Android运行环境4. 启动Android虚拟机5. JNI调用启动com.android.internal.os.ZygoteInit6. 在zygote进程中启动sy...原创 2018-03-04 13:18:23 · 237 阅读 · 0 评论 -
多屏互动技术研究(二)之WifiDisplay(Miracast)技术原理及实现
WifiDisplay(Miracast)技术原理及实现WifiDisplay(Miracast)技术原理及实现1. WifiDisplay简介2. WifiDisplay协议流程3. WifiDisplay显示框架实现4. Android WifiDisplay实现4.1 Source端实现4.1.1 设备扫描及发现4.2 Sink端的实现4.2.1 设备如何被发...原创 2018-03-05 14:36:50 · 34693 阅读 · 26 评论 -
多屏互动技术研究(三)之Airplay研究
Airplay技术研究1. Airplay简介1.1 Airplay协议构成1.2 Airplay难点分析1.2.1 Airplay 协议文档缺失1.2.2 Airplay 敏感数据加密的破解1.3 Airplay 握手建连1.4 Airplay Screen Mirroring 视频数据传输2. 实现机制2.1 设备发现2.2 设备连接及信令处理2.2.1 ...原创 2018-03-05 15:50:52 · 15538 阅读 · 10 评论 -
Android 图片缓存处理
异步下载 / 本地缓存异步下载大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常还是很容易就会抛出来的,那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情:启动一个新的线程来获取资源,完成后通过Handler机制发送消息,并在UI线程中...转载 2018-03-12 22:33:53 · 171 阅读 · 0 评论 -
android流媒体框架浅析
1.简介2.上层代码结构分析1.简介android流媒体往往总被我们忽略,而真正等到问题来的时候,来个“突然袭击”是非常痛苦的,因此有了这篇文章,希望大家可以笼统的了解一下这个框架,等到问题来的时候,至少知道从什么地方开始入手。 我们开始认识一下流媒体的功能:在线播放音视频流,我们支持两种协议,第一种是http,另一种是rtsp(实时数据的传输)。2.上...原创 2018-03-12 22:52:39 · 917 阅读 · 0 评论 -
Netty NIO异步框架介绍及使用
1. 简介2. 设计模型3. 逻辑架构4. 示例代码及API介绍5.TCP粘包/拆包解决6. 参考文献1. 简介Netty是一个高性能、异步事件驱动的NIO框架,提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 通常...原创 2018-03-06 17:06:15 · 4053 阅读 · 2 评论 -
Source Insight 4.0 最简单的破解安装
转载地址:http://blog.youkuaiyun.com/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装下载地址有更新,之前有朋友因潜在的版权问题封禁没下到,现在更新后可正常使用了。文末有完全清除上次安装残留的方法,需要的人可以参考。&nbs...转载 2018-03-14 00:33:22 · 528 阅读 · 0 评论 -
android MVVM框架学习总结(一)
android MVVM框架学习总结1.简单的数据绑定示例2.事件处理3. Layout细节android MVVM框架学习总结1.简单的数据绑定示例(1)布局文件这样写<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android...原创 2018-03-31 15:12:21 · 981 阅读 · 0 评论 -
Android MVVM框架学习总结(二)
Android MVVM框架学习总结4. 数据对象5. 生成Binding6.设置属性7.转换器Android MVVM框架学习总结4. 数据对象任何POJO对象都可以用于数据绑定,但是更改POJO对象,并不会引起UI更新。有三种不同的数据更改通知机制:观察对象,观察字段和观察集合。当其中一个绑定到用户界面的可观察的数据对象,观察到数据对象的属性变化,用户界...原创 2018-03-31 16:04:49 · 266 阅读 · 0 评论 -
android MVVM框架学习总结(三)
1. 为什么需要在项目中引入架构或者框架2. 当前有哪些架构或者框架可以使用2.1 MVC2.2 MVP2.3 MVVM2.4 MVVM架构在Android上的架构实现3. DataBinding框架介绍及使用3.1 DataBinding简介3.2 构建环境3.3 DataBinding使用1. 为什么需要在项目中引入架构或者框架使用架构的...原创 2018-03-31 17:23:29 · 671 阅读 · 0 评论 -
Android MVVM框架学习总结(四)
MVC、MVP及MVVM代码组织方式比较MVC代码组织方式V层C层M层MVP代码组织方式V层,类似于MVCM层,类似于MVCP层MVVM代码组织方式1.Activity/Fragment databingView层ViewModel层Model层2. ListView/GridView Item的databinding2. 参考链接...原创 2018-03-31 18:04:22 · 415 阅读 · 0 评论