android
文章平均质量分 65
lakebobo
本人也是个菜鸡,不过愿意分享我知道的,如果你需要的话,Email:[email protected]
展开
-
单例注解框架EasyInject —— 减少书写冗余的模板型代码
EasyInject旨在于使用注解解决减少书写常用的模板型代码,目前支持单例注解dependencies添加依赖def easy = '1.0.0'implementation 'com.lakehubo:easyinject:$easy'annotationProcessor 'com.lakehubo:injectutilAnnotationProcessor:$easy'use it@Singleton()public class SingleTonTester {原创 2020-07-21 22:16:59 · 290 阅读 · 0 评论 -
自定义BottomSheetBehavior控件
HBottomSheetBehavior自定义上拉dialog,由于Android原生自带的BottomSheetBehavior有冗余的中间折叠状态与半展状态 当需要实现一种简单的上拉框时,只需展开和隐藏状态,且当view低于某个窗口高度比例时才触发隐藏,否则回弹到全展开状态时,利用原生控件难以达到简单的需求所以,我复制下了原生BottomSheetBehavior的代码,并进行了简单的裁剪,达到了上述的目的。 详细的使用可以参考demo 后续会逐渐更新优化github传送门:https://git原创 2020-05-21 17:45:53 · 1297 阅读 · 0 评论 -
android ffmpeg+opensl 音频解码播放、暂停、进度seek、时间、上/下一首
类似文章太多,但是大多代码都有内存溢出的问题,而且都缺少c层调用java层的例子,实际上有了参考博文后,还是有很多坑需要自己填。不过,看了很多博主和帖子后还是能够解决一些问题,但是有些问题,根本找不到,所以我把音频解码播放还有控制部分做了比较详细的例子。ffmpeg的编译请参考我之前的文章,有编好的库文件在我的下载资源里,github的demo里也有。opensl库的引用也很简单,cmak...原创 2018-03-25 20:23:43 · 2888 阅读 · 0 评论 -
ffmpeg 获取多个音频流(音轨)的语言信息
需要获取视频文件中音频流的信息,比如语言什么的,后来发现,这些信息都包含在AVDictionary这个结构体里。下面列出获取方法AVFormatContext *pFormatCtx = avformat_alloc_context();for (int i = 0; i < pFormatCtx->nb_streams; i++) { if (pForm...原创 2018-04-13 00:35:52 · 4391 阅读 · 0 评论 -
android利用线程池进行并行计算加速并且返回计算结果
###这个方法适合大量数据比对,或者单次计算互不影响的情况线程池之前用过,但其实没有遇到过大量计算时候,还是没有进行过深入的了解和比较,正好,这次需要用到多线程并行计算并且同时返回计算结果的这么一个需求,网上找了一大圈,可能是搜索方式不对吧,相应的介绍比较少,大多都是无返回结果的并行计算,后来找到了对应方法,但是,写法不对的话是会用坑的这里我就简单介绍一下,关于利用线程池,进行多线程并行计...原创 2018-11-05 15:23:50 · 1426 阅读 · 0 评论 -
Android 获取USB输入设备信息/区分虚拟键盘和外接键盘输入
Android 获取USB等多个输入设备信息-InputDeviceActivity内的onKeyDown函数可以捕获输入设备的输入,但是如果android接了多个usb或者其他接口的输入设备,这时候,怎么获取不同输入设备的信息呢?如果能获取到这个输入设备的信息,我们就可以区分不同的输入设备来响应不同的事件。所以翻了一KeyEvent这个类,查看了里面的方法,发现有这么一个类InputDe...原创 2018-11-28 12:53:00 · 7499 阅读 · 1 评论 -
mac 编译 android8.1源码简记
源码编译简记编译环境搭编译环境编译过程运行编译好的源码编译环境macbook pro 13.3 15款2.9 GHz Intel Core i5OS 10.13.6 (17G5019)内存 16 GB 1867 MHz DDR3SSD 500G编译源码当然是cpu越高越好 我这个配置编译android8.1源码 花了4-5个小时基本上你能搜到的教程其实都差不多,也能使用,也可以...原创 2019-03-07 20:14:23 · 461 阅读 · 0 评论 -
android NV21裁剪算法
NV21裁剪算法简要简要最近,在做Android摄像头预览方法的事情,usb摄像头出来的数据都是16:9的,无法正常在竖屏状态下显示,所以就要对摄像头的数据进行裁剪处理,摄像头出来的数据是NV21(就是yuv420sp)格式,libyuv的裁剪算法是针对i420格式进行操作,裁剪NV21就得进行格式转换,一个裁剪需要三个操作,效率可想而知,经过测试libyuv对1920x1080进行裁剪,在r...原创 2019-03-23 16:14:29 · 3312 阅读 · 14 评论 -
android 图片/视频混合轮播控件banner
android 图片/视频混合轮播控件banner在youth5201314的图片轮播控件做的修改原作者github地址:https://github.com/youth5201314/banner原作者许久没有维护这个控件了,所以我在此控件基础上做了一些修改,新增视频图片混合轮播的形式,并且可以自定义每个子视图的播放显示时间github传送门:https://github.com/l...原创 2019-05-21 16:46:57 · 12084 阅读 · 76 评论 -
android ffmpeg视频硬解码例子
android ffmpeg mediacodec 硬解码ffmpeg 3.1以后 ffmpeg加入了硬解。 用法其实很简单,首先编译一个带硬解码的ffmpeg 库文件。#!/bin/bashPLATFORM=/Users/lake/test/android-ndk-r14b/platforms/android-19/arch-arm/TOOLCHAIN=/Users/lake/...原创 2018-03-19 23:38:47 · 10780 阅读 · 60 评论 -
ViewPager 循环播放广告
ViewPager 循环播放广告导航这段时间,做android首页时候,看见很多应用都有这个自动播放的广告导航效果,于是就网上找了很多例子来参考。不过,别人的并不一定试用于自己的情况,不过参考价值还是很大的。首先明确做这个广告导航的一点就是需要用viewpager,这个控件非常简单粗暴,在android studio里或者eclipse里创建android项目时候,我们可以在创建activity时原创 2016-04-20 09:22:05 · 612 阅读 · 0 评论 -
VideoView 获取当前播放时间
VideoView 获取当前播放时间最近在做视频,遇到这么个需求,播放视频中途退出时候记录当前播放的时间,播放视频,最简单的就是VideoView了,但是,官方并没有提供获取当前播放时间的方法,只有个getCurrentPosition()方法,可以获取当前播放的进度。 一般用VideoView时候都会配合MediaController来使用,MediaController就带有显示当前时间和总时原创 2016-04-20 11:37:25 · 10162 阅读 · 0 评论 -
android 横竖屏切换 不重新加载activity
manifest 文件中对应activity添加属性android:configChanges="keyboardHidden|orientation|screenSize"原创 2016-08-29 11:12:54 · 1372 阅读 · 0 评论 -
Error:Execution failed for task ':app:mergeDebugResources'. > Error: java.util.concurrent.ExecutionE
Error:Execution failed for task ':app:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: android studio 更新2.2.3后 原来的项目报错说找不到R文件原创 2016-12-09 18:05:30 · 2778 阅读 · 1 评论 -
android自定义view 右侧字母导航
android自定义view 右侧字母导航这次需求是做一个带右侧字母导航的国家地区的选择页面,这个效果在微信通讯录里就有展现,对于ios来说,直接一个控件就搞定,但是android是没有这样的控件的,所以要在android里实现这样的效果就不得不自己去自定义view了。原创 2017-08-16 13:47:23 · 7889 阅读 · 0 评论 -
Mac 编译FFmpeg4.2.1 并合成单个so文件
Mac 编译FFmpeg成一个SO库FFmpeg使用第三步,编译FFmpeg成一个SO库.编译环境macOS High Sierri 10.13.3android-ndk-r14bFFmpeg 3.4.2简介由于ffmpeg编译的so数目繁多,直接使用这些类库还是比较麻烦的. 因此可以将它们合并为一个类库 libffmpeg.so .操作步骤与编译多个so的脚本不同,这个脚本不再需要修改Conf...原创 2017-08-28 16:41:39 · 3155 阅读 · 0 评论 -
Android 基于FFmpeg的视频播放渲染 CMake + ANativeWindow
android 基于FFmpeg的视频播放为了学习android jni方面的姿势,利用之前编好的ffmpeg库so文件,实现一下android上面调用ffmpeg来解码播放视频。相信大家都看过雷神的博客了,但是对于现在ffmpeg3.0以上,雷神之前提供代码也过时了,运行也有问题,再者现在用jni也不通过mk的方式了,有as自带的cmake方式,所以本篇介绍的的方法都是用最新的方式去实现的。...原创 2018-03-16 13:51:54 · 1063 阅读 · 1 评论 -
Android6.0 连接指定的wifi
android6.0之后 wifi机制有了变化,如果连接的wifi没有网络,那么系统会自动切换Wi-Fi。这个可能对我们wifi方面的开发有影响,比如,我们要求连接wifi的本身就是不能访问外网的,仅仅是为了两个设备之间的通讯,这个时候,我们就需要一点小处理。 开发wifi方面的就必须要掌握WifiManager这个类,所有对android的wifi操作都是通过这个类,这里为了方便使用,封装了一...原创 2018-03-16 14:22:05 · 8831 阅读 · 20 评论 -
Mac 环境下ffmpeg编译出现 errno.h: No such file or directory 错误问题
Mac 环境下ffmpeg编译出现 errno.h: No such file or directory 错误问题这个问题困扰了我一下午,后来仔细分析了一下,发现是编译脚本的问题,之前一度认为脚本没有问题,可能是ffmpeg本事版本更新后的问题,其实不是。在此列出解决办法。 首先需要明确的是,ffmpeg的release版本下下来都是没有问题的,通过官网或者git。别直接clone git上...原创 2018-03-19 09:32:27 · 9942 阅读 · 0 评论 -
android ndk开发 定位native层c/c++语言的错误行号,崩溃行号。
mac系统 android studio ndk 开发时候,android层的崩溃或者报错,as是可以定位到具体哪行的,但是,我们在ndk编译c语言时候,c如果有逻辑出错,崩溃,as运行日志是打印不出来具体哪行报错,导致程序崩溃,为了定位c语言 native层的崩溃代码行号,addr2line的方法试了没有任何效果,找到以下方案可用。而且还是实时的打印。非常的方便。1.运行终端。 跳转到你an...原创 2018-03-23 00:06:07 · 2050 阅读 · 0 评论 -
android真机模拟程序 root权限下 查看项目数据库
android真机模拟程序 root权限下 查看项目数据库作为刚入门android开发的小白菜,开发是一件特别有成就感的事情,但是自己的笔记本带不起android虚拟机是痛啊,只能从朋友那里搞了个退休下来的小米3做测试机,虽然老了点,但是学习Android是够用了,那么学着学着就接触到sqlite数据库这里了,学着用SqliteOpenHelper,在这里跌了很多坑,现在就把我遇到的一些问题及解决方原创 2015-11-14 09:51:50 · 573 阅读 · 0 评论