自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android - 可拖动按钮悬浮button

一、可以拖动的View全局拖动,直接贴代码。

2023-11-03 10:36:09 790

原创 Abdroid - 开机动画修改

安卓都有开机动画 从安卓4.0或者更早截止到目前的安卓13版本。安卓开机顺序简单的来说就是开机第一屏---开机动画---进入系统桌面的步骤。相比开机第一屏来说。开机动画的修改就比较简单。因为所有的开机动画基本格式百分90都是相同的。区别就在于其中的图片分辨率和加载的脚本有点差别。一般手机都要root哦,高版本挺难得。

2023-09-28 13:34:07 295

原创 Android - 常见内存泄露问题盘点

内存泄漏的本质就是,当对象被创建时,如果没有被正确释放,那么这些对象就会一直占用内存,直到应用程序退出。例如,当一个Activity被销毁时,如果它还持有其他对象的引用,那么这些对象就无法被垃圾回收器回收,从而导致内存泄漏当存在内存泄漏时,我们需要通过GCRoot来识别内存泄漏的对象和引用。GCRoot是垃圾回收机制中的根节点,根节点包括虚拟机栈、本地方法栈、方法区中的类静态属性引用、活动线程等,这些对象被垃圾回收机制视为“活着的对象”,不会被回收。

2023-08-02 09:14:49 386

原创 Android - AMS/PMS/HOOK

AMS (ActivityManagerService)PMS (PackageManagerService)

2023-06-20 09:59:33 213

原创 App - Download

1、eKtang医生:Download2、DDMC护士:Download3、指导专家:Download4、牵头专家:Download5、eKTANG护士:Download

2023-06-14 15:07:08 318

原创 Android - 深色主题

我们一直以来使用的操作系统都是以浅色主题为主的,这种主题模式在白天或者是光线充足的 情况下使用起来没有任何问题,可是在夜晚灯光关闭的情况下使用就会显得非常刺眼。于是,许多应用程序为了能够让用户在光线昏暗的环境下更加舒适地使用,会在应用内部提供 一个一键切换夜间模式的按钮。当用户开启了夜间模式,就会将应用程序的整体色调都调整成 更加适合于夜间浏览的颜色。不过,这种由应用程序自发实现夜间模式的方式很难做到全局统一,即有些应用可能支持夜间 模式,有些应用却不支持。

2023-05-04 14:42:37 784 1

原创 Android - Serializable和Parcelable

Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象 可以在网络上进行传输,也可以存储到本地。至于序列化的方法非常简单,只需要让一个类去 实现Serializable这个接口就可以了。这里我们让Person类实现了Serializable接口,这样所有的Person对象都是可序列化的 了。可以看到,这里我们创建了一个Person的实例,并将它直接传入了Intent的putExtra()方法 中。

2023-05-04 10:58:59 585

原创 Android - 使用DSL构建专有的语法结构

DSL的全称是领域特定语言(Domain Specific Language),它是编程语言赋予开发者的一 种特殊能力,通过它我们可以编写出一些看似脱离其原始语法结构的代码,从而构建出一种专 有的语法结构。Gradle是一种基于Groovy语言的构建工具,因此上述的语法结构其实就是Groovy提供的DSL 功能。有没有觉得很神奇?不用吃惊,借助Kotlin的DSL,我们也可以实现类似的语法结构,下 面就来具体看一下吧。第一步、

2023-05-04 10:54:02 254

原创 Android - WorkManager

1、WorkManager很适合用于处理一些要求定时执行的任务,它可以根据操作系统的版本自动选择 底层是使用AlarmManager实现还是JobScheduler实现,从而降低了我们的使用成本。另外, 它还支持周期性任务、链式任务处理等功能,是一个非常强大的工具。2、WorkManager和Service并不相同,也没有直接的联系。Service是Android系统的四大组件之一,它在没有被销毁的情况下是一直保持在后台运行的。

2023-04-20 17:58:42 933

原创 Android - Room

Jetpack 中的框架,它主要由Entity、Dao和Database这3部 分组成,每个部分都有明确的职责:1、Entity。用于定义封装实际数据的实体类,每个实体类都会在数据库中有一张对应的表,并 且表中的列是根据实体类中的字段自动生成的。2、Dao。Dao是数据访问对象的意思,通常会在这里对数据库的各项操作进行封装,在实际 编程的时候,逻辑层就不需要和底层数据库打交道了,直接和Dao层进行交互即可。3、Database。

2023-04-20 11:49:45 201

原创 Android - LiveData(MutableLiveData)

LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生 变化的时候通知给观察者。LiveData特别适合与ViewModel结合在一起使用,虽然它也可以单 独用在别的地方,但是在绝大多数情况下,它是使用在ViewModel当中的。

2023-04-17 17:40:58 1172

原创 Android - colorPrimary、colorPrimaryDark、colorAccent

其中Theme.AppCompat.NoActionBar表示深色主题,它会将界面的主体颜色设 成深色,陪衬颜色设成浅色。而Theme.AppCompat.Light.NoActionBar表示浅色主题,它 会将界面的主体颜色设成浅色,陪衬颜色设成深色。这里定义了一个叫AppTheme的主题,然后指定它的parent主题是 Theme.AppCompat.Light. DarkActionBar。Android开发中,我们可以通过控制属性的值,改变界面的颜色来自定义界面主题。

2023-04-12 09:26:41 1515

原创 Android - Kotlin 协程Global.launch函数

那么什么是协程呢?它其实和线程是有点类似的,可以简单地将它理解成一种轻量级的线程。要知道,我们之前所学习的线程是非常重量级的,它需要依靠操作系统的调度才能实现不同线 程之间的切换。而使用协程却可以仅在编程语言的层面就能实现不同协程之间的切换,从而大 大提升了并发编程的运行效率。a()b()c()x()y()z()在没有开启线程的情况下,先后调用foo()和bar()这两个方法,那么理论上结果一定是a()、 b()、c()执行完了以后,x()、y()、z()才能够得到执行。

2023-04-07 17:45:17 693 2

原创 Android -No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

1. 原因分析:最新版ndk(version=25.1.8937393)的toolchains文件夹中无arm-linux-androideabi文件2. 解决方案:同时安装低版本的ndk(如version=21.3.6528147),将低版本ndk中toolchains 文件夹下的arm-linux-androideabi等文件复制到25.1.8937393版本ndk的toolchains 文件夹中同时安装两个版本的ndk,将21.3.6528147版本中的以下文件copy至25.1.8

2023-04-07 09:57:31 528

原创 Android - Kotlin中使用Retrofit的使用

它和OkHttp的定位完全不同。OkHttp 侧重的是底层通信的实现,而Retrofit侧重的是上层接口的封装。事实上,Retrofit就是Square 公司在OkHttp的基础上进一步开发出来的应用层网络通信库,使得我们可以用更加面向对象的 思维进行网络操作添加必要的依赖库。

2023-04-04 15:15:59 990

原创 Android - kotlin简易封装网络请求OkHttp

一、okhttp库首先需要创建一个OkHttpClient的实例接下来如果想要发起一条HTTP请求,就需要创建一个Request对象:在最终的 build()方法之前连缀很多其他方法来丰富这个Request对象。比如可以通过url()方法来设 置目标的网络地址之后调用OkHttpClient的newCall()方法来创建一个Call对象,并调用它的execute()方法 来发送请求并获取服务器返回的数据Response对象就是服务器返回的数据了,我们可以使用如下写法来得到返回的具体内容。

2023-04-04 14:25:32 1359

原创 Android - Kotlin Service

onServiceConnected()方法方法会在Activity与Service成功绑定的时候调用,而 onServiceDisconnected()方法只有在Service的创建进程崩溃或者被杀掉的时候才会调 用,这个方法不太常用。当一个Activity和Service绑定了之后,就可以调用该Service里的Binder提供的 方法了。onCreate()方法是在Service第一次创建的时候调用的,而onStartCommand()方法则 在每次启动Service的时候都会调用。

2023-04-03 18:05:36 648 2

原创 Android - app内部通知通知栏通知Notification (Kotlin)

第四个参数用于确定PendingIntent的行为,有 FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT和 FLAG_UPDATE_CURRENT这4种值可选,每种值的具体含义你可以查看文档,通常情况下这个 参数传入0就可以了。因此,这里就可以通过PendingIntent构建一个 延迟执行的“意图”,当用户点击这条通知时就会执行相应的逻辑。当然这里只是初始状态下的 重要等级,用户可以随时手动更改某个通知渠道的重要等级,开发者是无法干预的。

2023-03-27 21:38:36 2105

原创 Android - ContentProvider

ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的 机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。目前,使 用ContentProvider是Android实现跨程序共享数据的标准方式。ContentProvider 可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。

2023-03-22 21:05:59 209

原创 Android - ActivityLifecycleCallbacks应用的生命周期集中管理

Android API 14之后的Application类中,为我们提供了一个应用生命周期回调的注册方法,用来对应用的生命周期进行集中管理,这个接口叫registerActivityLifecycleCallbacks,可以通过它注册自己的ActivityLifeCycleCallback,每一个Activity的生命周期都会回调到这里的对应方法。

2023-03-15 13:27:02 211

原创 Android - 常用语法以及关键字以及lambda

关键字就是类型匹配的核心,它相当于J于Java中的instanceof关键字。所有主构造函数中的逻辑都可以写在里面。Kotlin常用函数以及关键字。无需实现toString等。

2023-03-14 17:32:30 691

原创 Android - MultiDex dex文件分包

但是在早期的Android系统中,DexOpt有一个问题,DexOpt会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的,导致了方法id的数目不能够超过65536个。当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。为了解决方法数超限的问题,需要将该dex文件拆成两个或多个,为此谷歌官方推出了multidex兼容包,配合AndroidStudio实现了一个APK包含多个dex的功能。

2023-03-08 22:42:10 220

原创 Android - 未读数红点View

【代码】Android - 未读数红点View。

2023-03-06 11:11:02 274

原创 Android - Edittext光标居右,以及文本居右

由此可见,不管输入框的宽度输多少内容始终居右图一的实现方式为:android:textDirection="rtl"图二的实现方式为:android:gravity="right"不需要自定义view

2022-12-05 14:04:44 1927 2

原创 Android - 集成高德地图API(搜索,地图,定位)

今天重构公司app的地图功能,刚好做个教程出来方便大家。第一步:注册高德开发用户,并来到控制台,点击应用管理->我的应用,然后创建新应用高德开放平台 | 高德地图API点击添加这里重点说一下 SHA1,通过gradle 看sha1完成后添加进入即可第二步:配置AndroidManifest.xml//地图SDK(包含其搜索功能)需要的基础权限

2022-11-30 14:13:19 1977

原创 Android - Glide加载gif时图片自适应手机屏幕的宽高

ui'给的切图是个gif,但是用Glide加载到ImageView的时候会出现不能铺满屏幕的尴尬情况,下面就用这个方法加载gif。步骤:逻辑很简单,就是获取gif的宽高动态的给到iv宽高就可以/*** Glide加载gif, 占满宽高**///glide是在listener()方法中传入一个RequestListener来设置当图片资源准备好了以后自定义的操作的。

2022-11-28 17:28:56 1265

原创 Android - 获取Logcat中用户打印的Log数据

最近有个问题就是要获取到蓝牙打印的日志数据内容并发送到后台,日志信息基本上都是同一个类的,所以只需要监听Log的Tag名称就可以。这个方法不用保存在本地什么的,百度上找的用不上。

2022-11-16 16:41:50 1225

原创 Android - 对接MQTT

首先你得知道这是什么吧,稀里糊涂抄一大堆完事就忘了可不行。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。MQTT有MQTT基本就是这些,本文默认你已经有一个MQTT的服务地址了,接下来就负责Andriod连接。我的使用场景是打开在线调试,一对一看到对方发来的数据。

2022-11-16 16:25:13 3110

原创 Android - 打包更改apk名称以及打包时目标文件夹不存在或不可写

突然要用来管控app的安装包版本以及发布时间时,我们就需要更改打包时apk的名称,加上版本号或者时间等等。

2022-11-11 15:12:55 1666

原创 Android - git@192.168.0.69‘s password:

1.把.项目文件夹下 .git下config文件的url的ssh格式配置改为http格式配置即可,如: git@192.168.1.99:8899/xx-public/xx-demo.git 改为http://192.168.1.99:9988/xx-public/xx-demo.git(这里就是把里边的:url = git@xxx...改为Httpxxx...).(不知道公司的可以用自己git的邮箱账号密码也就是公司私服上的账号密码登上去)

2022-10-26 16:57:35 953 1

原创 Android - Android Studio 使用WIFI调试adb

首先找到andoridStudio SDK的路径中的platform-tools文件夹 ,将他的路径复制我的是。到了这一步就可以拔掉数据线了 拔掉后命令行输入 adb connect 手机WIFI IP地址:端口号。会用命令,具体的命令包括: adb tcpip 5555 、 adb connect 手机ip地址。connect为链接设备,disconnect为断开,傻瓜式,下边的窗口会看到命令。然后输入命令adb start-server开启adb服务会打开服务。然后 Win+R 命令窗口 输入adb。

2022-10-20 10:22:30 1373

原创 Android - TextView动画加载文字

项目中有需求想让开屏Actvity 的Textview加载的时候有个从左到右的动画,其实很多地方也会用到。

2022-10-18 14:16:23 1174

原创 Android - Android studio Translation插件提示“更新 TKK 失败,请检查网络连接”问题

关于Android studio Translation插件提示“更新 TKK 失败,请检查网络连接”问题_初木白的博客-CSDN博客_tkk更新失败

2022-10-08 09:16:22 540

原创 Android-Kotlin 广播BroadcastReceiver的基本使用

4、在MainActivity中实例IntentFilter(),并addAction(android.intent.action.TIME_TICK)可以理解为系统时间发生变化时,系统发出的正是一条值为android.intent.action.TIME_TICK的广播。1、BroadcastReceiver属于四大组件之一、为了便于进行系统级别的消息通知,Android也引入了一套类似的广播消息机制。)是一种完全异步执行的广播,在广播发出之后,所有的。还可以截断正在传递的广播,这样后面的。

2022-09-30 10:07:56 1588

原创 Android-jsbridge基本使用(H5&uniappVue端 双向通信Android&IOS)

其中hybrid、react native等方案对前端很友好,毕竟是用我们熟悉的JavaScript开发,但JavaScript无法直接调用native本身提供的能力,比如获取相册信息。所以就需要通过一种方式将native能力提供给JavaScript,同时native也可能需要调用JavaScript的一些功能,而JSBridge就是JavaScript和native之间的桥梁,提供两者相互调用的能力。二、使用 BridgeWebView对象,内部是对webview的封装直接使用就可以。

2022-09-27 10:11:18 4951

原创 Android-集成华为扫码

没有特殊要求,追求扫码品质和速度可以尝试集成huawei统一扫码。(速度可以和微信一拼)第一步:根目录下build.gradle 引入华为maven'第四步:Manifest申请静态权限和扫码页面声明。第三部:加入混淆(这一步不影响使用,可自行选择)第五步:声明华为扫码Activity。第二步:项目目录下引入 华为扫码。第六步:在使用的地方获取权限。最后:在回调中获取数据。

2022-09-27 09:05:54 974

原创 Android-Android10及以上开机自启APP

帮朋友做一下开机监听,并自启app。顺便记录一下。注意:开机后会停留在锁屏页面,且短时间内如果没有进行解锁操作,屏幕会进入休眠状态,所以启动APP时需要先唤醒屏幕和解锁屏幕。

2022-08-31 22:36:19 3849 1

原创 Android-自定义圆形ProgressBar加载

补充:_paint.setShadowLayer(10, 10, 10, Color.GRAY);设置阴影效果_paint.setColor(Color.rgb(222, 235, 243));再暴露出去设置进度和总进度的两个方法就可以了。后来发现做的挺简单的,大佬一个比一个厉害。linearGradient可以设置渐变。效果图:进度条颜色由浅到深。一共就几个方法:测量-绘制。......

2022-08-29 11:12:57 1982

原创 Android镂空字体,TextvView实现镂空字体效果

效果图:看了几个整体思路都是自定义HolloTextView继承自View,重写onDraw方法,绘制背景,使用PorterDuff.Mode.DST_OUT的画笔调用canvas.drawText方法绘制文字。

2022-08-25 13:49:16 992

原创 Android Studio导入项目 kotlin库kotlin-compiler-embeddable(1.5.20.jar)一直下载中的问题

文件路径:/Users/“用户名”/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.5.20/一、项目根目录中build.gradle 加入阿里云的国内镜像仓库地址,就可以快速的下载需要的文件。库一直加载问题 (导入失败)),下面有两个方法快速解决。4、点入所需jar包,file后面下载所需jar包版本。二、可以去手动下载所需要的jar包手动放入。

2022-08-23 09:09:24 3509

Android - AMS/PMS

流程图

2023-06-20

空空如也

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

TA关注的人

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