android
吹着空调哼着歌
努力努力努力
展开
-
Android 桌面快捷方式
Android 快捷方式使用方式ShortcutUtils.getInstance().addShortcut(this , MainActivity2.class , liveBundle , "vhall_live_Id" , "看直播" , "看直播"原创 2021-12-27 14:38:30 · 3344 阅读 · 1 评论 -
Android 弹幕(一)自定义
弹幕(一)自定义无法暂停根据时间戳和播放器同步弹幕数据/** * 一个简化版的DanmakuViewPool */public class CachedDanmakuViewPool implements Pool<DanmakuView> { private static final String TAG = "CachedDanmakuViewPool"; /** * 缓存DanmakuView队列。显示已经完毕的DanmakuView会被添加到缓存.原创 2021-11-09 13:38:20 · 812 阅读 · 0 评论 -
Android动画移动
实现方式TranslateAnimation translateAnimation = new TranslateAnimation( TranslateAnimation.RELATIVE_TO_SELF, -1, TranslateAnimation.RELATIVE_TO_SELF, 0, //0代表控件本身的位置 TranslateAnimation.RE原创 2021-11-09 13:32:34 · 2168 阅读 · 0 评论 -
Android全局拦截异常-防崩溃
全局设置Application @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); new Handler(getMainLooper()).post(new Runnable() { @Override public void run() { while (t原创 2021-11-09 13:27:44 · 3267 阅读 · 0 评论 -
网络IO模型——简析NIO / BIO / AIO
网络IO模型——NIO和BIOBIO(同步阻塞的BIO)NIO(同步非阻塞的NIO)AIO(异步非阻塞的AIO)场景BIO(同步阻塞的BIO)BIO:也就是Blocking的IO。在socket连接中read,write,connect一类的系统调用中会卡住,就是Block。比如在读取服务器数据时,无法得知是否有传输数据就会堵塞。因此在服务器发送数据之前,客户端会一直堵塞,直到收到服务器的消息才会继续执行。对于单线程来说,无法做其他的处理,整个线程都会进入等待中。会导致用户体验感差!所以一般网络在多线程原创 2021-06-17 10:51:42 · 318 阅读 · 0 评论 -
Socket通信 客户端(Android)
Socket通信长连接socket网络编程什么是socket?Socket的原理实例socket网络编程什么是socket?Socket的英文原义是“孔”或“插座”。在网络编程中,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协原创 2021-06-11 14:24:00 · 537 阅读 · 1 评论 -
Android 可手动管理并垂直滚动轮播控件
A : 如何做到滚动并手动操控轮播?B : 当然使用ViewPager了A : 嗯 是这样的 ViewPager2就可以垂直了呀博主: androidx 项目开发者请自行离开 ViewPager2的确可以实现B : 项目使用的com.android.support:appcompat怎么办呢?A :把整体项目升级到androidx博主:的确是个好方法 未免忒费事了吧!!!后续会出一篇《如何升级androidx项目》B :做为开发者 代码只要跑起来就不要乱动了 升级暂不采纳 会出现很多冲突!原创 2021-05-21 09:54:33 · 754 阅读 · 7 评论 -
Android 通知及通知提示音
1.适配8.0发送通知2.通知提示音粘贴部分代码(亲测有效 放心使用)发送通知适配8.0 private NotificationManager manager; private Notification.Builder notification; //判断是否有通知权限 private boolean isNotification(){ return NotificationManagerCompat.from(this).areNotificationsE原创 2021-05-21 09:25:56 · 2375 阅读 · 4 评论 -
Android 网易云信直播
Android集成网易云信直播网易云官网集成Android端推流sdk概述设备要求: 支持Android 4.3及以上系统 特性要求: 支持推流到主流 RTMP 服务器 支持 H.264 和 AAC 编码 支持纯音频或者纯视频推流 支持直播中伴音 支持直播中单独暂停音频或者视频 支持MP4录制 支持显示推流统计信息 支持自定义YUV、PCM输入 支持YUV、PCM回调 支持直播前测速 支持音视频采集,编码,打包,传输 支持 armv7、arm64 架构 资源占用率原创 2021-05-13 17:06:41 · 2767 阅读 · 9 评论 -
OkHttp 处理Https问题
onFailure: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.在之前接入php接口时是http没有任何问题完美跑通但在正式环境下域名切换到https下就会出现一个异常onFailure: java.security.cert.CertPathValidatorException: Trust anchor for certification path no原创 2021-04-26 17:46:35 · 1886 阅读 · 3 评论 -
Android GSYVideoPlayer自定义封面
GSYVideoPlayer自定义封面请先了解上一章节上一章节:GSYVideoPlayer视频播放在播放的时候发现,直播视频时GSY是有画面的但在直播音频的时候GSY会黑屏,这样用户体验感就不会很好怎么办?我一开始想到了两个办法 1.放一第一帧图片 2.放置一张背景图 3.修改GSYVideo Player本身的背景 经过测试我发现,方法1在播放时就不可行,方法2展示了一张图片无法暂停,缺隐藏了播放器依然不可行 那就只能读源码执行方法3了public class LiveVid原创 2021-04-22 13:20:38 · 3137 阅读 · 4 评论 -
Android VideoView使用 VideoError: what: 1 extra: -2147483648
VideoError: what: 1 extra: -2147483648可以看到我使用的第一个网络地址是没问题的可以播放 格式 .MP4 完美播放没有问题第二个地址是一个直播的地址 编码格式h.264 flv格式 VideoView无法播放并抛出 VideoError: what: 1 extra: -2147483648VideoView只支持3gp、MP4、avi 所以没有办法只能更换三方支持协议的播放器比如GSY IJK vitamio 这种硬解码支持多种协议的播放器原创 2021-03-30 16:14:37 · 1197 阅读 · 1 评论 -
Android GSYVideoPlayer视频播放器
GSYVideoPlayerGSYVideoPlayer官方地址GSYVideoPlayer 一个基于IJkPlayer的播放器支持调节声音亮度边播边缓存 使用了AndroidVideoCache;ExoPlayer使用SimpleCache支持多种协议h263\4\5、Https、concat、rtsp、hls、rtmp、crypto、mpeg等等简单滤镜(马赛克、黑白、色彩过滤、高斯、模糊、模糊等等20多种)、动画、(水印、画面多重播放等)视频第一帧、视频帧截图功能,视频生成gif功能。原创 2021-03-30 15:12:19 · 8729 阅读 · 12 评论 -
Android 自定义轮播图
Android 自定义轮播图定义Banner定义定时器Handler绘制一个下标指示器定义Banner主要使用ViewPager实现滑动public class Banner extends FrameLayout { public Context context; private @LayoutRes int layoutId = R.layout.banner_view; private View inflate; private ViewPager pag原创 2021-03-24 16:21:11 · 309 阅读 · 2 评论 -
Android 串口通信
串口通信SerialPort生成so文件编写处理C文件生成so文件常见bug*注意生成so文件首先确保已经安装了NDK和CMake然后创建一个SerialPort.java文件主要用来处理so文件注意包名一旦写好不要更改位置,具体代码:import android.util.Log;import java.io.File;import java.io.FileDescriptor;import java.io.FileInputStream;import java.io.FileOu原创 2021-01-25 11:18:57 · 1923 阅读 · 1 评论 -
Android 长连接Netty
netty准备工作netty准备工作依赖: implementation 'io.netty:netty-all:4.1.36.Final' compileOnly "org.projectlombok:lombok:1.16.18" implementation 'org.glassfish:javax.annotation:10.0-b28'导入jar包:libs–>fastjson-1.2.49.jar*下方有demo下载获取n原创 2021-01-11 14:40:07 · 630 阅读 · 6 评论 -
Android 双屏异显——Presention
双屏异显——Presention双屏异显——Presention是一个应用于辅助屏显示的一个组件一个双屏收银 主屏选择商品 副屏给客户显示需求Presention相当于一个在Window上显示的一个Dialog与Activity一样Presention也是通过setContentView();设置layout的 <!-- 显示系统窗口权限 --> <uses-permission android:name="android.permission.SYSTEM_ALERT原创 2021-01-11 10:23:52 · 1131 阅读 · 0 评论 -
Android 布局旋转 横屏竖屏
Android 屏幕旋转 横屏竖屏横屏 竖屏布局旋转横屏 竖屏方法一:*注意在setContentView()之前if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横屏 //set原创 2021-01-11 10:08:15 · 998 阅读 · 0 评论 -
Android 金额转换精度丢失
在开发中经常会遇到Double.parseDouble() 、Integer.parseInt()转换后与我们想要得到的值不一致的问题?我们先了解一下Java中各类型的域当超出这个范围就会转换错误解决方案 -----> 使用BigDecimalBigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情原创 2021-01-04 10:34:08 · 443 阅读 · 0 评论 -
Android 9.0自动更新 安装包解析错误 java.lang.SecurityException: Permission Denial
在android 9.0自动下载更新时 遇到 安装包解析错误在android 7.0使用的是同一套框架却没有问题?然后通过adb命令抓取一下异常发现12-18 19:21:32.665 4804 5604 W InstallStaging: java.lang.SecurityException: Permission Denial: reading android.support.v4.content.FileProvider uri content://com.***.***.update_原创 2020-12-19 10:01:59 · 4282 阅读 · 2 评论 -
Android 自定义View——绘制饼图
自定义View——绘制(一)onDraw Canvas Paint(二)绘制范围和绘制顺序(三)坐标系(四)Demo展示(麦当劳logo、动态饼图)Android 中自定义View,大体可以分为三类:1、绘制2、布局3、触摸反馈本篇主要说一下自定义基础:绘制绘制:就是控件内容的显示,使用canvas(画板)和paint(画笔)绘制出图形的动作就是绘制(一)onDraw Canvas Paint1、绘制方法:绘制操作一般在onDraw(Canvas canvas)方法里进行绘制动作一原创 2020-12-14 15:35:41 · 502 阅读 · 0 评论 -
Android音频播放-支付金额播报
Android音频播放 支付金额播报(SoundPool、MediaPlayer)demo地址demo采用了Android音频播放的两种方式SoundPool 和 MediaPlayer两者区别是 SoundPool需要优先初始化 将音频加载到内存中 播放时从内存中获取音频文件 不加载无法播放MediaPlayer不需要初始化 随时都可以进行播放由此可见 SoundPool 播放会比MediaPlayer 更快一些SoundUtil 对SoundPool的封装 由于Soun原创 2020-12-10 10:23:45 · 2359 阅读 · 5 评论 -
Android - 极光推送 即时通讯
极光推送 即时通讯准备应用集成极光推送sdk准备应用Demo 项目地址github打开极光官网 链接: 极光 到极光推送官方网站注册开发者帐号;登录进入管理控制台,创建应用程序,得到 Appkey(SDK 与服务器端通过 Appkey 互相识别);在推送设置中给 Android设置包名、给 iOS 上传证书、启用 WinPhone,根据你的需求进行选择;集成sdk集成极光推送sdkJcenter 自动集成步骤使用 jcenter 自动集成的开发者,不需要在项目原创 2020-12-09 15:24:25 · 3177 阅读 · 7 评论 -
Android 开机自启的实现
Android的开机自动启动App首先在AndroidManifest.xml中注册一个广播和添加权限 <!-- App自启动所需权限 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- App自启动 --> <receiver android:name=".包名.MyReceiver">原创 2020-12-08 10:23:02 · 705 阅读 · 1 评论