自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 1247

原创 android 差值器的使用

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

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

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

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

2025-02-11 21:20:42 760

原创 android 用户空间切换流程

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

2024-12-23 10:00:10 951

原创 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 357

原创 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 144

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

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

2024-11-25 19:45:18 395

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

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

2024-11-19 23:52:23 2048

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

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

2024-11-19 20:19:54 943

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

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

2024-11-19 13:04:43 451

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

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

2024-11-19 09:47:58 775

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

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

2024-11-18 23:06:42 614

原创 android 解决sdk代码冲突

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

2023-08-23 09:31:17 905

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

使用android sdk自带反混淆实现

2023-05-18 20:32:36 981

原创 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 556

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

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

2023-02-27 14:22:47 465

原创 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 2727

原创 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 1295

原创 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 2569

原创 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 2519

原创 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 1894 2

原创 gradle版本下载

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

2019-08-20 22:30:06 150

原创 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 1242

原创 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 1476

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

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

2018-08-07 23:08:11 2028

原创 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 694

原创 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 298

原创 android ContentProvider使用

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

2017-12-19 18:47:00 385

原创 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 682

原创 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 400

原创 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 2810 1

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

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

2017-09-08 22:39:13 1671

原创 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 2117 1

转载 android 8.0新功能

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

2017-08-24 17:08:23 8815

原创 app性能优化

一般我们写的app操作的数据多的时侯或者平时使用的时候都会经常出现卡顿、闪退、ANR停止运行等各种问题。这样会导致用户使用的体验非常差,因此在写代码的时候我们就要注意一些代码的书写方式和做好优化了。一般app的优化我们可以从启动、布局、内存、存储、耗电等进行优化。1、启动优化:*应用的启动分为冷启动和热启动。冷启动:应用第一次启动的时候,系统会为应用创建一个新的进程,所以首先会创建和初

2017-08-14 22:06:34 2472

原创 android 天气预报

获取城市天气数据的途径有很多,这里主要使用高德实现。1、首先到高德官网:http://lbs.amap.com/dev/key/app 注册一个开发者账号,然后在应用管理-->我的应用那里添加一个应用,关于获取SHAI上面有文档可以查看http://lbs.amap.com/faq/top/hot-questions/249 但是其中要注意的是,如果在as的Terminal那里获取

2017-07-26 19:27:25 3790

原创 android 按时间显示图片

实现效果:首先写需要用到的图片数据:时间、文件名、路径等package com.example.a550211.cd;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by xing on 2017/7/4. */public class ImageTime { privat

2017-07-11 19:27:14 4882 5

原创 android 反射使用

1、在我们开发过程中可能会遇到某些类中的方法或变量无法使用,例如加了/** {@hide} */注释的,就是一些隐藏的方法。如果我们用反射就可以轻松调用了。2、虽然如此但反射也有缺点:* 因为是动态执行的,效率自然没有预编译时引用现有的库效率高,就像平时我们Win32开发时,可以不用h文件,直接通过GetProcAddress一样去动态获取方法的地址。当然效率要根据复杂程度而决定,一般

2017-07-06 22:51:41 2359

原创 Java 错误解决之java.lang.IllegalArgumentException: Comparison method violates its general contract

在jdk1.7上使用分类排序会报下面错误java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:743) at java.util.TimSort.mergeAt(TimSort.j

2017-06-21 19:16:28 16997 2

转载 android 右边滑动字母索引使用

1、实现效果2、实现主要时一个listView或者recyclerView跟一个自定义右边a-z的显示自定义view实现,首先自定义view实现首先绘制右边栏a-#,通过获取屏幕的高度然后计算每个字母的高度进行绘制 @Override protected void onDraw(Canvas canvas) { int perTextHeight = get

2017-06-16 23:21:07 4589 1

android 计算器(GridView实现)

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

2016-06-17

android GridView 简单计算器

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

2016-06-16

循环viewFlipper实现

可实现图片的循环播放。

2016-06-14

fragment实例

android fragment 的简单使用。

2016-06-12

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

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

2016-06-08

android 拼图游戏

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

2016-06-07

android 计步器(pedometer)

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

2016-06-03

android html学习

android html5学习代码。

2016-06-02

android 记事本

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

2016-05-30

android 桌面组件 App widget的使用 AppWidgetProvider

android 桌面组件 App widget的使用.

2016-05-28

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

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

2016-05-27

android 全局变量使用

android 全局变量的定义使用

2016-05-27

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

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

2016-05-25

android 文件选择

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

2016-05-24

android Camera

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

2016-04-21

简单的音乐播放器代码

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

2016-04-18

密码界面登陆实现

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

2016-04-06

闹铃的设置

闹铃设置,时间到后提示

2016-03-13

高德地图定位

高德地图定位

2016-02-22

SQLite数据库

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

2016-02-20

MediaCodec 音视频编解码

MediaCodec 音视频编解码

2024-12-19

音乐频谱Visualizer代码

音乐频谱Visualizer代码

2024-11-25

MyTestProject.rar

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

2020-07-14

gradle_5.1.1_all.rar

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

2019-07-02

android 高仿微信图片选择

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

2017-11-01

Android Messenger使用

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

2017-09-26

android 按时间显示图片

按时间顺序显示图片

2017-07-11

glide base

glide

2017-07-11

android 右边滑动字母索引使用

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

2017-06-16

android进程间通信

android aidl进程间的通信

2017-04-17

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

DownloadManager实现apk下载安装

2017-04-12

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

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

2017-03-20

android 自定义控件

自定义控件的简单使用

2017-03-18

onTouch测试

Android onTouch事件传递机制

2017-02-28

Android onTouch事件传递机制

Android onTouch事件传递机制

2017-02-28

imageLoader框架使用

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

2017-01-04

volley框架使用

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

2016-12-30

DBUtils数据库的使用

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

2016-12-28

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

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

2016-12-27

android环信聊天

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

2016-12-23

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

TA关注的人

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