自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Hilt详解

Hilt 是 Android 的依赖项注入库,可减少在项目中执行手动依赖项注入的样板代码。Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期,提供了一种在应用中使用 DI(依赖项注入)的标准方法。Hilt 在 Dagger 的基础上构建而成,因而能够受益于 Dagger 的编译时正确性、运行时性能、可伸缩性。

2023-10-22 11:52:11 195

原创 Android导入aar包时类冲突问题

项目在导入第三方 aar 包时,偶尔会由于各第三方依赖的包版本不一致导致冲突,编译时会报错:Program type already present: xxx。按照网上说的,使用 exclude 方式尝试依然没什么效果。最后,使用 aar 创建新的 Module,以 Module 依赖的方式,解决了此问题。处理步骤如下:1. 选择File - New - Newmodule,如下图所示,将 a...

2019-04-12 22:52:28 10561 11

原创 Android Studio 的 build 过程

我们知道,在 Android 项目的开发过程中,只需要点一下 Android Studio 的运行按钮,就可以将代码编译好并运行在设备上。相信任何一个 Android 开发者都知道,从我们点击按钮到设备上运行 APP,Android Studio 默默地做了编译、打包(生成 APK 文件)、安装、运行等很多事情,安装和运行不是本文所关心的内容。下面,我们一起来看看,Android Studio 的...

2018-06-24 21:10:52 2009

原创 引入 Tinker 之后如何在 Debug 模式下开启 Instant Run

在《Tinker + Bugly + Jenkins 爬坑之路》一文中讲了在接入 Tinker 之后,Jenkins 中的一些坑,由此,热修复算告一段落,但是,在直接 Run 模式运行时,程序会报出如下错误:Tinker does not support instant run mode, please trigger build by assembleDebug or disable ins...

2018-06-09 21:02:01 959 3

原创 网路协议

网络的五层划分应用层应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP ( File Transfer Protocol,文件传输协议 ) 和 DNS ( Domain Name System , 域名系统 ) 服务就是其中两类。HTTP 协议也处于该层。传输层传输层对应上层应用层,提供处于网络连接中的两台计算机...

2018-06-03 14:19:03 262

原创 Tinker + Bugly + Jenkins 爬坑之路

前阵子 Android 端的线上崩溃比较多,热修复被提上日程。实现方案是 Tinker,Jenkins 打包,最后补丁包上传到 Bugly 进行分发。主要在 Jenkins 打包这一块爬了不少坑,现记录下来,供大家参考。1. Tinker + Bugly热修复实现首先是本地实现,按照官方文档,只要一步一步按照文档来,这个步骤还是比较容易的,这里就不再赘述了,不懂的可以先参考官方文档:Bug...

2018-06-02 16:23:48 767 1

原创 Android 线程池的类型、区别以及为何要用线程池

每个 Android 应用进程在创建时,会同时创建一个线程,我们称之为主线程,负责更新 UI 界面以及和处理用户之间的交互,因此,在 Android 中,我们又称之为 UI 线程。一个进程中 UI 线程只有一个,为了不造成界面卡顿、提高用户体验,我们势必要将一些耗时操作交由子线程来执行。使用子线程的方式主要分两种: 直接使用 Thread 和 Runnable 等创建并使用子线程 ...

2018-05-26 15:17:57 260

原创 Android AIDL浅析及异步调用

AIDL:Android Interface Definition Language,即 Android 接口定义语言。AIDL 是什么Android 系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供的服务,Android 系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的...

2018-05-20 00:19:50 540

原创 Android四大组件的作用以及是否可以开启多进程

Android四大组件是指 Activity、Service(服务)、BroadcastReceiver(广播)、ContentProvider。在注册方面,Activity、Service、ContentProvider 必须在 AndroidManifest 中注册,而 BroadcastReceiver 既可以在 AndroidManifest 中注册,也可以通过代码来注册。如下图所示:在调...

2018-05-13 23:54:13 1757

原创 Android进程保活方案

Android 系统为了保持系统运行流畅,在内存吃紧的情况下,会将一些进程 kill,以释放一部分内存。然而,对于一些(如:IM-QQ 、微信,支付-支付宝等)比较重要、我们希望能及时收到消息的 APP ,需要保持进程持续活跃,那么就需要实施一些保活措施来保证进程能够持续存活,即Android 进程保活。Android 进程保活,一般从两个方面进行:运行中保活:提高进程优先级,降低被系统 kill...

2018-05-02 00:22:36 705

原创 SonarQube配置自定义的CheckStyle代码规则

对于自定义的CheckStyle代码规则如何配置到SonarQube?网上找了很久,也没找到多少有用的信息,没办法,自己撸吧。一通撸下来发现,其实挺简单 (⊙▽⊙)惯例第一步肯定是SonarQube的安装与运行配置了,但这部分不在本文主题内,网上一搜一大把,这里就不讲了,大家可以先看这篇文章:SonarQube的安装、配置与使用 。我们直接讲自定义CheckStyle代码规则的配置方法。 ...

2018-04-25 23:07:48 11920 1

空空如也

空空如也

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

TA关注的人

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