自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(463)
  • 资源 (5)
  • 收藏
  • 关注

原创 kotlin基本类型

所有以未超出 Int 最大值的整型值初始化的变量都会推断为 Int 类型。如果初始值超过了其最大值,那么推断为 Long 类型。 如需显式指定 Long 型值,请在该值后追加 L 后缀。val one = 1 // Intval threeBillion = 3000000000 // Longval oneLong = 1L // Longval oneByte: Byte = 1可以使用带小数部分的数字初始化Double与Float变量。 小数部分与整数部分之...

2022-01-28 11:11:28 1954

转载 kotlin--综合运用Hilt、Paging3、Flow、Room、Retrofit、Coil等实现MVVM架构

前面我们使用Java来运用JetPack中的一系列组件,又使用kotlin运用这些组件实现了一系列功能:kotlin--Flow文件下载 kotlin--Flow结合Room运用 kotlin--Flow结合retrofit运用 kotlin--StateFlow运用 kotlin--SharedFlow运用接着,Jetpack的Paging3中,我们使用的语言是kotlin,相信通过这些项目的对比,你就能发现koltin取代Java的理由了,kotlin拥有更好的扩展性,更高的性能,更简洁的

2022-01-20 10:02:13 252

转载 Jetpack新成员,Paging3从吐槽到真香

各位小伙伴们大家早上好。随着Android 11的正式发布,Jetpack家族也引入了许多新的成员。我之前有承诺过,对于新引入的App Startup、Hilt、Paging 3,我会分别写一篇文章进行介绍。现在,关于App Start和Hilt的文章我都已经写完了,请参考 Jetpack新成员,App Startup一篇就懂 和 Jetpack新成员,一篇文章带你玩转Hilt和依赖注入 。那么本篇文章,我们要学习的自然就是Paging 3了。Paging 3简介Paging是Googl

2022-01-20 09:52:45 73

转载 Jetpack新成员,一篇文章带你玩转Hilt和依赖注入

各位小伙伴们大家早上好。终于要写这样一篇我自己都比较怕的文章了。虽然今年的Google I/O大会由于疫情的原因没能开成,但是Google每年要发布的各种新技术可一样都没少。随着Android 11系统的发布,Jetpack家族又迎来了不少新成员,包括Hilt、App Startup、Paging3等等。关于App Startup,我在之前已经写过一篇文章进行讲解了,感兴趣的朋友可以参考 Jetpack新成员,App Startup一篇就懂 这篇文章 。本篇文章的主题是Hilt。Hi

2022-01-19 18:13:02 37

翻译 通用 Intent

通用 IntentIntent 用于通过描述您想在某个Intent对象中执行的简单操作(如“查看地图”或“拍摄照片”)来启动另一应用中的某个 Activity。这种 Intent 称作隐式Intent,因为它并不指定要启动的应用组件,而是指定一项操作并提供执行该操作所需的一些数据。当您调用startActivity()或startActivityForResult()并向其传递隐式 Intent 时,系统会将 Intent 解析为可处理该 Intent 的应用并启动其对应的Activ...

2021-12-02 11:03:02 109

翻译 多窗口支持

Android 允许多个应用同时共享同一屏幕。该系统可以并排显示两个应用(分屏模式),可在其他应用的上方用小窗口叠加显示应用(画中画模式),还可以让各个应用分别在可移动且可调整显示尺寸的窗口中显示(自由窗口模式)。图 1.两个应用在分屏模式下左右并排显示。用户体验取决于 Android 操作系统的版本和设备类型: Android 7.0在手持设备上支持分屏模式,在电视上支持画中画模式。 分屏模式会以左右并排或上下并排的方式分屏显示两个应用。用户可以拖动两个应用之间的分隔线,放大..

2021-12-02 11:02:49 310

翻译 appWidget

构建应用微件应用微件是可以嵌入其他应用(如主屏幕)并接收定期更新的微型应用视图。这些视图称为界面中的微件,您可以使用应用微件提供程序发布微件。能够容纳其他应用微件的应用组件称为应用微件托管应用。下面的屏幕截图显示了音乐应用微件。本文档介绍如何使用应用微件提供程序来发布应用微件。如需了解如何创建您自己的AppWidgetHost来托管应用微件,请参阅应用微件托管应用。注意:如需了解如何设计应用微件,请阅读应用微件概览。基础知识要创建应用微件,您需要:AppWidgetProvi..

2021-12-01 17:14:28 296

翻译 应用快捷方式

创建快捷方式快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容。您要如何以快捷方式来呈现内容取决于您的用例,以及快捷方式的上下文是属于应用驱动型还是用户驱动型。虽然静态快捷方式的上下文不会更改,而动态快捷方式的上下文会不断变化,但这两种情况下的上下文都由您的应用驱动。如果用户选择了希望应用以哪种方式(例如使用固定快捷方式)向其呈现内容,则此时的上下文是由用户定义的。以下场景展示了各类快捷方式的一些用例:静态快捷方式最适合在用户与应用互动的整个生命周期内使用一致结构链接到内

2021-12-01 15:43:55 234

翻译 “最近使用的应用”屏幕

“最近使用的应用”屏幕最近使用的应用屏幕(也称为概览屏幕、近期任务列表或最近用过的应用)是一个系统级界面,上面列出了最近访问过的Activity和任务。用户可以浏览该列表并选择要恢复的任务,也可以通过滑开操作将任务从列表中移除。Android 5.0(API 级别 21)引入了以文档为中心的模型,也就是说,如果同一 Activity 的多个实例包含不同的文档,它们可能会在最近使用的应用屏幕中显示为任务。比如说,Google 云端硬盘的几个 Google 文档可能各自都有一个任务。每个文档都会在最近使..

2021-12-01 11:23:40 93

翻译 加载器使用

Android P(API 级别 28)中已弃用加载器。在处理 Activity 和 Fragment 生命周期时,推荐使用ViewModels和LiveData的组合来处理加载数据。当加载器等配置发生变更后,ViewModel 仍会存在,但其样板文件会有所减少。LiveData 提供拥有生命周期感知能力的数据加载方法,您可以在多个 ViewModel 中重复使用该方法。您还可使用MediatorLiveData结合 LiveData,并且可使用任何可观察查询(例如来自Room 数据库的查询)...

2021-12-01 11:04:07 234

翻译 验证 Android 应用链接

Android 应用链接是一种特殊类型的深层链接,可让您的网站网址直接在您的 Android 应用中打开相应内容(无需用户选择应用)。如需向应用添加 Android 应用链接,请定义使用 HTTP 网址打开应用内容的 intent 过滤器(如创建指向应用内容的深层链接中所述),并验证您是否为相关应用和网站网址的所有者(如本指南中所述)。如果系统成功验证您是网址所有者,则会自动将这些网址 intent 路由到您的应用。如需验证您对应用和网站的所有权,您需要执行以下步骤:在清单中请求自动验证应用链接

2021-12-01 10:44:59 1085

转载 BluetoothDevice详解

一. 概述代表一个远程蓝牙设备。通过此类可以查询其名称、地址、连接状态等信息。这个类的操作会执行在远程蓝牙硬件上,BluetoothDevice获取方法:1.使用BluetoothAdapter.getRemoteDevice(String)方法去创建一个已知MAC地址的设备2.通过 BluetoothAdapter.getBondedDevices()得到已经配对的设备集合二. 常量1.广播常量主要广播常量如下图:String ACTION_ACL_CONNECTED :与远程.

2021-11-30 18:18:38 2971

转载 Android蓝牙配对弹出框过程分析

Android蓝牙配对弹出框过程分析根据远程蓝牙设备(remote devices)的要求,手机端发起与远程蓝牙设备Bluetooth remote Device的配对有两种情况第一种:配对时需要pin码(pin request event)即有配对请求pairing request :所对应的action为 : BluetoothDevice.ACTION_PAIRING_REQUEST。根据远程设备所携带的type信息判断是否可以获取到pairingkey type值通过Bluet...

2021-11-30 16:27:03 761

转载 根据用例配置软件包可见性

本文档举例说明了应用与其他应用进行交互的一些常见用例。每个部分都会介绍如何针对其他已安装应用管理软件包可见性,如果您的应用以 Android 11(API 级别 30)或更高版本为目标平台,则需要考虑这个问题。当您的应用以 Android 11 或更高版本为目标平台并使用 intent 在其他应用中启动 activity 时,最简单的方式是调用 intent,并在没有可用的应用时处理ActivityNotFoundException异常。如果应用的部分功能需要知道对startActivity(...

2021-11-18 18:14:39 71

转载 AndroidX Activity 改动 及ActivityResultLauncher 简单修改

google 在 androidX 上对 activity 及 fragment 部分功能调整(startActivityForResult ,requestPermission,Save/Restore InstanceState,onBackPress)简化为 callback 的可回调方式使用(暂时还会修改,建议 beta 版再更) // build.gradle implementation 'androidx.activity:activity-ktx:1.2.0-alpha03'

2021-11-18 17:49:39 1006

转载 文档指南-视图绑定

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在大多数情况下,视图绑定会替代findViewById。设置说明注意:视图绑定在Android Studio 3.6 Canary 11 及更高版本中可用。视图绑定功能可按模块启用。要在某个模块中启用视图绑定,请将viewBinding元素添加到其build.gradle文件中,如...

2021-11-18 15:51:56 81

转载 DataStore

Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。如果您当前在使用SharedPreferences存储数据,请考虑迁移到 DataStore。注意:如果您需要支持大型或复杂数据集、部分更新或参照完整性,请考虑使用Room,而不是 DataStore。DataStore 非常适合简单的小型数据集,不支持部分更新或参照完整性。Preferences ...

2021-11-18 15:29:41 145

转载 Jetpack新成员,App Startup一篇就懂

Android 11系统已经来了,随之而来的是,Jetpack家族也引入了许多新的成员。其实以后Android的更新都会逐渐采用这种模式,即特定系统相关的API会越来越少,更多的编程API是以Jetpack Library的形式提供给我们的。这样我们就不需要专门针对不同的系统版本去写很多的适配逻辑,而是统一用Jetpack提供的接口即可。Android也是在用这种方式去解决长期以来的碎片化问题。而今年的Jetpack家族当中又加入了两名重磅的新成员,一个是Hilt,另一个是App Startup。

2021-11-18 15:11:36 35 1

转载 应用架构指南

本指南包含一些最佳做法和推荐架构,有助于构建强大而优质的应用。本页假定您对 Android 框架有基本的了解。如果您不熟悉 Android 应用开发,请查看我们的开发者指南,着手体验并详细了解本指南中提到的概念。如果您对应用架构感兴趣,并且希望从 Kotlin 编程的角度看本指南中的内容,请查看使用 Kotlin 开发 Android 应用这一 Udacity 课程。移动应用用户体验在大多数情况下,桌面应用将桌面或程序启动器当做单个入口点,然后作为单个整体流程运行。Android 应用则不然

2021-11-18 14:29:47 130

转载 BottomSheetDialogFragment使用的注意点

最近重构项目,想把之前的一些控件替换成BottomSheetDialog。最后选用的是更加方便的BottomSheetDialogFragment。也遇到了很多坑,写出来分享一下。1.BottomSheetDialogFragment背景圆角设置<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:

2021-11-18 11:00:30 818

转载 Android JNI学习(二)——实战JNI之“hello world”

本系列文章如下:Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JNI学习(五)——Demo演示本地内容主要简介如下:1、环境展示 2、传统方...

2021-11-18 09:52:10 80

转载 与 Fragment 通信

为了重复使用 Fragment,请将每个 Fragment 构建为一个完全独立的组件,使其定义自己的布局和行为。定义这些可重复使用的 Fragment 后,您可以将其与 Activity 关联,并将其与应用逻辑联系起来,以实现整体复合界面。为了正确响应用户事件,或为了共享状态信息,通常需要在 Activity 与其 Fragment 之间或者两个或更多 Fragment 之间具有通信渠道。为使 Fragment 保持独立,您不应让 Fragment 直接与其他 Fragment 或与其宿主 Activi

2021-11-18 09:41:20 33

转载 进程和应用生命周期

在大多数情况下,每个 Android 应用都在各自的 Linux 进程中运行。当需要运行应用的一些代码时,系统会为应用创建此进程,并使其保持运行,直到不再需要它且系统需要回收其内存以供其他应用使用。应用进程的生命周期并不由应用本身直接控制,而是由系统综合多种因素来确定的,比如系统所知道的正在运行的应用部分、这些内容对用户的重要程度,以及系统中可用的总内存量。这是 Android 非常独特的一个基本功能。应用开发者必须了解不同的应用组件(特别是Activity、Service和Broadcast...

2021-11-17 14:24:48 34

转载 了解任务和返回堆栈

任务是用户在执行某项工作时与之互动的一系列 Activity 的集合。这些 Activity 按照每个 Activity 打开的顺序排列在一个返回堆栈中。例如,电子邮件应用可能有一个 Activity 来显示新邮件列表。当用户选择一封邮件时,系统会打开一个新的 Activity 来显示该邮件。这个新的 Activity 会添加到返回堆栈中。如果用户按返回按钮,这个新的 Activity 即会完成并从堆栈中退出。通过以下视频可以大致了解返回堆栈的工作原理。正在上传…重新上传取消​您可能无法从当前所在的区域

2021-11-17 14:14:37 58

翻译 支持不同的语言和文化

应用包含可能专门针对特定文化而设计的资源。例如,应用可以包含针对特定文化的字符串,这些字符串将转换为当前语言区域的语言。将具有文化特异性的资源与应用的其他资源分开是一种很好的做法。Android 会根据系统语言区域设置解析特定于语言和文化的资源。您可以使用 Android 项目中的资源目录为不同的语言区域提供支持。您可以指定相关资源,此类资源根据使用应用的用户的文化量身定制。您可以提供适合用户的语言和文化的任何资源类型。例如,以下屏幕截图展示了应用在设备的默认 (en_US) 语言区域和西班牙语 (es

2021-11-16 16:14:38 33

原创 设备兼容性

设备功能<manifest ... > <uses-feature android:name="android.hardware.sensor.compass" android:required="true" /> ...</manifest> PackageManager pm = getPackageManager(); if (!pm.hasSystemFea...

2021-11-16 14:56:35 1621

转载 Android APK反编译技巧全讲解

Android APK反编译技巧全讲解 导言:在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取。 首先我们应当了解的是,对于反编译我们一共需要三个工具,它们分别是:APKTool,dex2jar,和jd-gui。 APKTool:用于解析apk的res文件以及AndroidManifest.xml文件 dex2jar:用于把apk解压后生成

2021-11-11 18:03:53 1142

转载 Android常用代码集

1、拨打电话public static void call(Context context, String phoneNumber) {context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)));}需要添加权限2、跳转至拨号界面public static void callDial(Context context, String phoneNumber) {cont.

2021-11-11 09:55:21 178

转载 Android开发之WIFI与网络连接处理

网络连接处理在说WiFi之前,先来说说网络连接处理。在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络。判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情。现在app大多都需要从网络上获得数据。所以访问网络是在所难免。但是在访问网络之前,我们应该先做一下网络的状态判断。其实在访问网络之前我们要做一些状态判断,对应

2021-11-10 17:53:04 1241

转载 Android WiFi热点开发

创建热点1、根据加密类型、密码、是否隐藏等参数来创建热点 static WifiConfiguration createWifiConfig(String SSID, @WifiSecurityType int wifiCipherType, String password, boolean hiddenSSID) { WifiConfiguration wifiConfiguration = new WifiConfiguration(); wifiConfiguration.SSID =

2021-11-10 17:46:46 385

转载 Android中WIFI开发总结

WIFI就是一种无线联网技术,常见的是使用无线路由器。那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网。如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热点”。 在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面,主要包括以下几个类和接口:1.ScanResult 主要用来描述已经检测出的接入点,包括接入点的地址,接入点的名称,身份认证,频率,信号强度等信息。其实就是通过wifi...

2021-11-10 17:18:19 306

转载 彻底理解ANDROID BINDER通信架构(上)

一. 引言1.1 Binder架构的思考Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信号量, 信号. 为什么Android非要用Binder来进行进程间通信呢?在说到Binder架构之前, 先简单说说大家熟悉的TCP/IP的五层通信体系结构:应用层: 直接为用户提供服务;传输层: 传输的是报文(TCP数据)或者用户数据报(UDP数据)网络层: 传输的是包(Packet), 例如路由器数据链路.

2021-10-21 17:23:36 75

转载 Android进阶——Android跨进程通讯机制之Binder、IBinder、Parcel、AIDL

前言Binder机制是Android系统提供的跨进程通讯机制,这篇文章开始会从Linux相关的基础概念知识开始介绍,从基础概念知识中引出Binder机制,归纳Binder机制与Linux系统的跨进程机制的优缺点,接着分析Binder的通信模型和原理,而Binder机制最佳体现就是AIDL,所以在后面会分析AIDL的实现原理,最后简单的提下AMS的Binder体系,整篇文章中间会穿插有IBinder、Binder、Parcel的介绍,整篇文章阅读难度不大,不会涉及到framework层的Binder原理,

2021-10-21 15:03:44 295

转载 android Binder

https://segmentfault.com/a/1190000039800120?utm_source=sf-similar-article

2021-10-21 14:12:16 13

转载 Android 自定义水平渐变进度条的几种实现

先看进度条的效果(不用看文字):方式一(自定义控件)新建类,继承自View,在onDraw中进行绘制:import android.content.Context;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Paint;import android.graphics.RectF;import android.graphics.Shader;im

2021-10-20 16:38:27 522

转载 Android开源项目发现---ProgressBar 篇(持续更新)

1. SmoothProgressBar 水平进度条项目地址:https://github.com/castorflex/SmoothProgressBarDemo地址:https://play.google.com/store/apps/details?id=fr.castorflex.android.smoothprogressbar.sample2. ProgressWheel 支持进度显示的圆形ProgressBar项目地址:https://github.com/Todd-Davie

2021-10-20 16:08:16 271

转载 DownloadManager+NumberProgressBar+Executors线程池实现多并发下载APK安装

在github上面苦苦寻找都木有找到有关Android自带下载器DownloadManager多并发下载的,于是就决定自己试试写一个。先上个图:我的上篇文章http://blog.csdn.net/u013277740/article/details/51737080只实现了单个下载安装,这次升级一下实现步骤:1、初始化一个缓存线程池cachedThreadPool = Executors.newCachedThreadPool();12、在渲染每一条数据的时候往里面加任务 .

2021-10-20 16:04:26 94

转载 Drawable Resources与Color State List Resource

概述Android把任何可绘制在屏幕上的图形图像都称为drawable 资源,你可以通过类似getDrawable(int)的API来获取drawable资源,你也可以通过类似android:drawable 、 android:icon的属性将drawable 资源应用到其他的XML资源中。Drawable表示的是一种可以在Canvas上进行绘制的抽象的概念、它的种类有很多,它们都表示一种图像的概念,通过图片或者颜色可以构造出各式各样的图像的效果,也可以通过继承Drawable类自定义Drawable

2021-10-20 14:30:59 40

转载 Android样式开发之layer-list、level-list总结

layer-list将多个图片或效果按照顺序层叠起来,通常和selector、shape配合使用。layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,后面的依次往上面叠放layer-list.jpeg如图可以实现Tab的背景效果,和带阴影的圆角矩形对于TAB,是由一个红色的层加一个白色的层叠在一起显示的结果。<?xml version="1.0" encoding="utf-8"?><selector xmlns:and.

2021-10-20 11:42:52 222

转载 android NumberPickerView

NumberPickerView GitHub地址 https://github.com/Carbs0126/NumberPickerView引用implementation 'cn.carbswang.android:NumberPickerView:1.2.0'兼容的方法有:setOnValueChangedListener()setOnScrollListener()setDisplayedValues()/getDisplayedValues()setWrapSelect

2021-10-20 10:25:33 79

DOIP android client

DOIP android client

2022-09-16

eclipse svn插件.rar

eclipse svn插件.rar

2014-08-07

TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip

64位svn安装文件,64位svn安装文件

2014-08-07

sourceinsight

sourceinsight

2014-08-07

花样Android_ProgressBar_史上最强大讲解.doc

花样Android_ProgressBar_史上最强大讲解.doc

2014-06-10

ClearCase基础培训.pdf

一个软件版本控制管理工具说明书文挡,将bug和软件版本关联,很实用的,是ibm的一个管理工具

2010-09-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除