自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (52)
  • 问答 (1)
  • 收藏
  • 关注

原创 java.nio.file.InvalidPathException: Illegal char <:> at index 48异常问题解决

摘要:文章分析了Android开发中出现的InvalidPathException异常问题,指出该问题通常发生在资源文件合并阶段。建议通过检查values目录下的colors、strings等文件内容,重点排查属性命名冲突问题。作者特别强调自定义属性命名应添加库名前缀以避免重复,并提供了DownloadProgress属性定义的示例代码。这类问题通常源于不同库之间的属性命名冲突,通过规范化命名可有效解决。

2025-11-24 09:03:58 249

原创 Android 接入deepseek

本文介绍了如何在Android Studio中接入DeepSeek AI工具,包括注册账号、创建API key等前期准备。详细说明了功能实现步骤:添加网络权限、构建输入输出界面布局、配置请求数据格式和依赖库。重点讲解了通过OkHttp发起API请求,处理JSON返回数据的关键代码实现,并提供了流式返回和普通返回两种方式的处理建议。最后展示了如何将AI响应结果显示在UI上,帮助开发者快速集成DeepSeek到自己的Android应用中。

2025-09-03 22:50:31 568

原创 Android 16k页面大小适配

Android 15开始支持16KB页面大小,相比传统4KB页面可提升应用启动速度3%-30%、电池续航4.5%、相机启动4.5%-6.6%和系统启动8%。开发者需升级NDK至r28+,在CMake中设置16KB页面对齐参数(0x4000)。通过Android Studio可下载16KB模拟器镜像进行测试,未适配应用在16KB模式下会校验失败。该功能目前默认关闭,作为开发者选项供提前适配准备。

2025-09-02 22:16:34 3352

原创 android 禁用在当前activity下禁用侧边滑动关闭

摘要:该代码片段通过重写onKeyUp和dispatchTouchEvent方法,实现了对Android返回键的拦截控制。当检测到滑动操作(ACTION_MOVE)时,标记isSlideMove为true;在按下返回键时,若存在滑动操作则拦截事件,否则正常关闭Activity。这种机制可用于区分纯返回操作和滑动后的返回操作,实现更精细的界面交互控制。

2025-08-06 10:17:36 229

原创 Missing classes detected while running R8解决

摘要:遇到R8编译错误提示缺少类文件,特别是java.lang.invoke.StringConcatFactory类。解决方法是将build/outputs/mapping/debug/missing_rules.txt中的规则复制到proguard-rules.pro配置文件中。该问题出现在蓝牙操作类初始化时,导致10多处引用失败。通过添加缺失类或保留规则即可解决此编译错误。

2025-07-15 10:55:51 579

原创 android studio debug调试出现 IOException异常

摘要:解决Android调试端口无法打开的问题,出现"Unable to open debugger port"错误时,可以进入app设置,选择Debugger选项,将Debug type更改为Java Only模式。这个方法适用于Android Studio调试时遇到的端口连接问题,能有效解决Java调试器连接失败的状况。操作简单快捷,无需修改复杂配置即可恢复调试功能。

2025-05-29 09:32:36 723

原创 Android Binder机制

1.Binder是Android中的一个类,它继承了IBinder接口。2. 从IPC角度来说,Binder是Android中的一种跨进程通信方式,Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder,该通信方式在linux中没有3. 从Android Framework角度来说,Binder是ServiceManager连接各种Manager(ActivityManager、WindowManager,etc)和相应ManagerService的桥梁。

2025-02-22 11:42:46 2382

原创 android 差值器的使用

1、系统插值器主要有下面几种AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速 AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速 AnticipateInterpolator 开始的时候向后甩一点然后向前 AnticipateOvershootInterpolator 开始的时...

2025-02-22 10:30:17 323 1

原创 Android Handler的机制跟源码分析

不断循环执行 Looper.loop() ,从 MessageQueue 中读取 Message ,按分发机制将消息分发出去给目标处理(将 Message 发到 Handler.dispatchMessage 方法去处理)。上面讲到了新建Message推荐使用 obtain() ,因为可以有效的复用消息,其中里面复用的就是 sPool 变量,它是在Message回收的时候进行赋值的。在应用启动时,会执行 main() 方法, main() 会创建一个 Looper 对象,然后开启一个死循环,目的是不断从。

2025-02-11 21:20:42 893

原创 android 用户空间切换流程

在Android开发中,创建和切换用户是一个重要的功能,特别是在需要多用户支持的应用中,下面讲述一下用户切换的流程。

2024-12-23 10:00:10 1309

原创 Android 音视频编解码器 MediaCodec

在Android中是使用MediaCodec类进行编解码。MediaCodec是什么呢?MediaCodec是Android提供的用于对音视频进行编码(压缩)和解码(解压缩)的类,它通过访问底层的codec来实现编解码的功能,比如你要把摄像头的视频yuv数据编码为h264/h265,pcm编码为aac,h264/h265解码为yuv,aac解码为pcm等等。MediaCodec是Android 4.1 API16引入的,在Android 5.0 API21加入了异步模式。

2024-12-19 16:29:47 572

原创 MediaPlayer 源码分析

MediaPlayer有create(),prepare(),prepareAsync(),setDataSource(),start(),pause(),release()等方法,MediaPlayer代码路径是在frameworks/base/media/java/android/media/MediaPlayer.java,MediaPlayer继承PlayerBase,并且实现了SubtitleController.Listener, VolumeAutomation和AudioRouting接口。

2024-12-12 17:58:43 259

原创 android MediaPlayer音效可视化--Visualizer

Visualizer 是使应用程序能够检索当前播放音频的一部分以进行可视化。它不是录音接口,仅返回部分低质量的音频内容。但是,为了保护某些音频数据的隐私,使用 Visualizer 需要 android.permission.RECORD_AUDIO权限。捕获的长度可以通过分别调用和方法来检索或指定。捕获大小必须是返回范围内的 2 的幂。

2024-11-25 19:45:18 570

原创 android 使用实现音效--Equalizer

这里只是介绍10段音效,五段同理,可以用seekbar实现10段频率音效,然后去调节每个,再记录不同的值,可以参考酷狗音乐等的音效去设置差不多的值,然后记录下来,再设置进去即可。这里调了两个音效,实际可以发挥自己想象力跟音乐细胞创作无限音效。

2024-11-19 23:52:23 2771

原创 android 使用MediaPlayer实现音乐播放

多媒体框架支持播放各种常见媒体类型,因此 可轻松地将音频、视频和图片集成到您的应用中。你可以播放音频或 从存储在应用资源(原始资源)的媒体文件(原始资源)中获取独立文件 或从通过网络连接到达的数据流中,所有这些均使用API。MediaPlayer初始化只需要直接创建即可,添加播放完成跟错误监听。一般我们初始化还可以首次将上次播放的音乐跟播放进度设置进去,mMediaPlayer?.setDataSource(music.data)是设置播放音乐数据,mMediaPlayer?

2024-11-19 20:19:54 1087

原创 android 使用MediaPlayer实现音乐播放--获取音乐数据

前面已经添加了权限,有权限后可以去数据库读取音乐文件,一般可以获取全部音乐、专辑、歌手、流派等。数据类MusicData。1. 获取全部音乐数据。2. 获取流派音乐数据。

2024-11-19 13:04:43 566

原创 android 使用MediaPlayer实现音乐播放--权限请求

随着Android版本的不断更新,从Android 6.0(API级别23)开始,应用需要动态请求权限,而到了android 13以上需要的权限又做了进一步改变。用户如果不同意权限可以跳转到设置找到应用去同意添加权限,用户有可能会拒绝权限请求,最好在界面添加可以继续请求的按钮或者直接跳转到设置里面让用户找到应用去添加需要的权限。处理权限请求结果,如果全部权限都已同意可以去做初始化,一般我们做权限请求最好每个功能点需要用到的权限一个个去请求会更友好。权限,系统只会显示一个系统权限对话框。

2024-11-19 09:47:58 1065

原创 android 使用MediaPlayer实现音乐播放--基础介绍

你可以播放音频或 从存储在应用资源(原始资源)的媒体文件(原始资源)中获取独立文件 或从通过网络连接到达的数据流中,所有这些均使用。, 因为它 当您的 activity 未与产品互动时,就应该继续保留该 activity 并无意义。当然,当 activity 恢复或重启时,您需要 请创建一个新的。MediaPlayer适合播放大的实时性要求不高的音频,其主要方法有: static MediaPlayer create(Context context,int resid)因此,您应始终采取额外的预防措施,

2024-11-18 23:06:42 761

原创 android 解决sdk代码冲突

1. 在引用sdk的外面添加排除sdk。2. 全局指定对应的sdk版本。

2023-08-23 09:31:17 1037

原创 android 通过mapping.txt还原混淆代码

使用android sdk自带反混淆实现

2023-05-18 20:32:36 1245

原创 dokka实现

1、app项目下的build.gradle 的dependencies下添加。3、将库下面的build.gradle改成build.gradle.kts。2、settings.gradle 的repositories添加。4、将build.gradle.kts的plugins添加。5、修改build.gradle.k。

2023-04-19 20:50:46 624

原创 android 点击父类,子控件会有点击效果(Seekbar)

【代码】android 点击父类,子控件会有点击效果(Seekbar)

2023-02-27 14:22:47 524

原创 android 实现自定Seekbar

可实现左边跟中间滑动显示Seekbarpackage com.android.myapplication;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;

2022-04-25 22:47:42 2788

原创 android 解决android studio编译慢问题

1、我们编译代码的时候经常会出现build超级慢,有时候可能得等十几二十分钟,因为我们用了谷歌的加载导致会很慢(maven { url "https://maven.google.com/"}),这句一定不能加,可以加阿里云的,这样我们编译速度会快非常多倍,下面是配置文件,对着加进去就可以了。buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/pub.

2020-12-28 10:31:32 1427

原创 android Activity转场动画makeSceneTransitionAnimation

1、activity转场动画实现有很多,这里主要记录ActivityOptions实现转场动画。1、makeSceneTransitionAnimation实现,网上很多说要添加下面这句代码<item name="android:windowContentTransitions">true</item>或者Activity中添加requestWindowFeature(Window.FEATURE_CONTENT_TRANSITIONS);,但是实际不添加也可以2、

2020-08-10 22:29:25 2793

原创 Android recyclerView实现二级横向显示

1、效果图2、主要实现比较简单,首先data数据类package com.example.mytestproject.recycle;import java.io.Serializable;import java.util.List;public class RecyclerItem implements Serializable { private int icon; private String name; private List<Integer&

2020-07-15 23:05:14 2594

原创 Android 实现涂鸦笔效果

1、主要可以通过手指绘制各种图案、还可以清除回撤等效果,实现比较简单。2、主要实现代码,功能实现比较简单。package com.example.mytestproject;import android.content.Context;import android.graphics.BlurMaskFilter;import android.graphics.Canvas;import android.graphics.Color;import android.graphi.

2020-07-08 22:28:53 1990 2

原创 gradle版本下载

gradle版本下载:http://services.gradle.org/distributions/

2019-08-20 22:30:06 181

原创 android 状态栏和虚拟按键栏字体背景颜色设置

1、设置顶部状态栏字体颜色为白色红底public static void setStatusBarColor(Activity context, boolean useThemeStatusBarColor) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上 ...

2019-06-17 22:08:28 1317

原创 android ViewPager+fragment切换动画实现

1、viewPager的fragment切换动画主要实现ViewPager.PageTransformer接口,然后修改下面几个参数实现各种不同的动画切换效果的。setAlpha(@FloatRange(from=0.0, to=1.0) float alpha) 透明度 setTranslationX(float translationX) X轴平移 setTranslationY(fl...

2019-01-23 22:24:15 1551

原创 android 耳机按钮控制音乐播放

1、一般我们耳机上有按钮可以实现音量加减控制中间还有一个按钮也可以监听到它的点击事件。还有就是可以监听到耳机的插拔事件。2、首先实现耳机插拔事件的监听,注册一个插拔事件的静态action&lt;action android:name="android.media.AUDIO_BECOMING_NOISY" /&gt;3、注册一个用于监听耳机点击事件的监听&lt;action a...

2018-08-07 23:08:11 2145

原创 android Aes加密解密和Des加密解密

1、Aes加密,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。package com.example.nsc.dataencryptproject;import android.util.Log;import jav...

2018-04-02 18:57:22 734

原创 android jni使用

1、配置添加ndk,然后配置一下环境变量2、配置build.gradle,在defaultConfig中添加//配置ndk信息ndk{    moduleName "JniTest"    abiFilters "armeabi","armeabi-v7a","x86"}//配置so文件存放位置sourceSets.main {    jni.srcDirs = []    jniLibs.src...

2018-03-31 09:14:59 348

原创 android ContentProvider使用

1、contentProvider可用于进程间的通信,即应用间数据的共享。 2、contentProvider 的数据类型有null、Interger、real(浮点数)、text(字符串)、blob(大数据) 3、contentProvider使用使用首先创建一个数据库,里面可以有多个参数,具体,可自行定义 package com.example.nsc.biglarge;

2017-12-19 18:47:00 425

原创 android 仿微信图片选择器

1、要实现首先在build.gradle中添加下面依赖库compile 'com.github.bumptech.glide:glide:3.5.2' compile 'com.android.support:recyclerview-v7:25.0.+'2、需要添加下面三个权限 3、先实现图片选择的activity,这里只使用了recycleView实现图

2017-11-01 22:15:22 739

原创 android Messenger跨进程通信

1、android messager可以实现不同进程之间数据的传递。通过点击进去看messenger类可以看到,我们可以创建一个service用于处理和客户端的连接请求,然后通过handler中创建一个messener对象,实现对service数据传递。/** * Create a new Messenger pointing to the given Handler. Any Mes

2017-09-26 22:15:07 444

原创 android 实现圆形头像

1、首先看一下实现效果2、首先新建一个自定义view实现ImageView,详细可看注释package com.example.a550211.xfermode;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import

2017-09-25 17:16:39 2853 1

原创 android 相机使用(拍照、录像、图片查看、静态人脸识别、延时拍照)

相机是我们最常用的手机应用之一,这里只是实现几个简单的功能、拍照、延时拍照、录像、图片查看等。2、这里主要使用surfaceView实现,首先打开摄像头实现预览,在surfaceCreated中添加/** * 启动预览 */ private void startPreview() { if (mCamera != null || !mIsSurf

2017-09-08 22:39:13 1734

原创 android 实现监听短信接收并将当前位置发送出去

1、获取定位地址,这里使用高德定位,从官网下载定位的jar包AMap_Location_V3.50_20170731.jar包然后在build.gradlecompile files('libs/AMap_Location_V3.5.0_20170731.jar')然后在权限文件中添加需要的权限和申请的key<manifest xmlns:android="http://schemas.an

2017-08-31 19:15:03 2210 1

转载 android 8.0新功能

Skip to content Developers设计 开发 分发navigationAndroidOreoAPI 概览行为变更向 Android 8.0 迁移应用示例后台执行限

2017-08-24 17:08:23 8901

SQLite数据库

SQLite数据库是一个轻量级的数据库,可实现增删改查等操作

2016-02-20

android Camera

可实现拍照存储等功能 :详细:http://blog.csdn.net/u011324501/article/details/51212381

2016-04-21

简单的音乐播放器代码

一个简单的音乐播放器代码。

2016-04-18

android 记事本

应用包括密码登陆界面,日记显示界面还有写日记等界面。使用了sqlite数据库作为存储。

2016-05-30

android 桌面组件 App widget的使用 AppWidgetProvider

android 桌面组件 App widget的使用.

2016-05-28

android 全局变量使用

android 全局变量的定义使用

2016-05-27

android 获取手机电话号码短信内容

获取手机电话号码和手机短信内容。

2016-05-27

android 获取手机图片裁剪后分享

通过获取手机图片然后调用系统裁剪分享。

2016-05-25

android 文件选择

可实现类似点击可选择文件的路径,点击可到手机文件夹路径下选择文件。

2016-05-24

高德地图定位

高德地图定位

2016-02-22

android 计步器(pedometer)

android 计步器的实现,可以比较准确的算出步数。

2016-06-03

密码界面登陆实现

可实现输入五个密码然后登陆。类似记事本登陆界面的实现。

2016-04-06

android 计算器(GridView实现)

应用主要实现了简单的计算器功能,就是加减乘除。

2016-06-17

android 拼图游戏(可从手机选择一张图片)

首先从手机选择一张图片,然后可进行拼图游戏,可记步数跟关数。

2016-06-08

android 拼图游戏

应用实现拼图游戏,可记步数跟关数。

2016-06-07

android GridView 简单计算器

应用主要使用了GridView实现了简单的计算器功能.

2016-06-16

循环viewFlipper实现

可实现图片的循环播放。

2016-06-14

fragment实例

android fragment 的简单使用。

2016-06-12

android html学习

android html5学习代码。

2016-06-02

闹铃的设置

闹铃设置,时间到后提示

2016-03-13

MediaCodec 音视频编解码

MediaCodec 音视频编解码

2024-12-19

音乐频谱Visualizer代码

音乐频谱Visualizer代码

2024-11-25

简单好用的上拉加载下拉刷新 BaseRecyclerViewAdapterHelper

一个强大并且灵活的 Android RecyclerViewAdapter。 优化Adapter代码(减少百分之70%代码) 添加点击item点击、长按事件、以及item子控件的点击事件 添加加载动画(一行代码轻松切换5种默认动画) 添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 设置自定义的加载更多布局 添加分组(随心定义分组头部) 自定义不同的item类型(简单配置、无需重写额外方法) 设置空布局(比Listview的setEmptyView还要好用!)

2016-12-27

android 按时间显示图片

按时间顺序显示图片

2017-07-11

android 使用download Manager实现应用下载安装

DownloadManager实现apk下载安装

2017-04-12

glide base

glide

2017-07-11

Android Messenger使用

android messager可以实现不同进程之间数据的传递。通过点击进去看messenger类可以看到,我们可以创建一个service用于处理和客户端的连接请求,然后通过handler中创建一个messener对象,实现对service数据传递。

2017-09-26

gradle_5.1.1_all.rar

android studio gradle-5.1.1-all.zip 资源下载

2019-07-02

MyTestProject.rar

该demo主要有随意画图功能跟recyclerview实现二级横向滑动、类似图片编辑的滤镜显示。还有一个用于临时缓存的类、可以存储各种数据

2020-07-14

Android onTouch事件传递机制

Android onTouch事件传递机制

2017-02-28

android 右边滑动字母索引使用

放联系人右边栏实现,可以滑动右边字母实现listView数据的滑动。

2017-06-16

volley框架使用

Volley可以 自动调度网络请求 多个并发的网络连接 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致 支持请求优先级 支持取消请求的强大API,可以取消单个请求或多个 易于定制 健壮性:便于正确的更新UI和获取数据 包含调试和追踪工具等优点。 Volley特别适合数据量不大但是通信频繁的场景。

2016-12-30

android okGO、okHttp、XUtils网络框架使用

android okGO、okHttp、XUtils网络框架使用

2017-03-20

android进程间通信

android aidl进程间的通信

2017-04-17

android 自定义控件

自定义控件的简单使用

2017-03-18

android 高仿微信图片选择

仿微信图片选择功能,包括图片选择、编辑、和图片的显示等功能。

2017-11-01

DBUtils数据库的使用

DBUtils是java编程中的数据库操作实用工具,小巧简单实用。

2016-12-28

android环信聊天

使用环信实现基本聊天功能,代码不多不知为什么工程会那么大

2016-12-23

imageLoader框架使用

Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。 (1).使用多线程加载图片 (2).灵活配置ImageLoader的基本参数,包括线程数、缓存方式、图片显示选项等; (3).图片异步加载缓存机制,包括内存缓存及SDCard缓存; (4).采用监听器监听图片加载过程及相应事件的处理; (5).配置加载的图片显示选项,比如图片的圆角处理及渐变动画。

2017-01-04

onTouch测试

Android onTouch事件传递机制

2017-02-28

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

TA关注的人

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