- 博客(15)
- 收藏
- 关注
原创 Android 实现音频的裁剪,拼接和混音
Android 实现音频的裁剪,拼接和混音基本流程在项目中我们的音频一般都是指的mp3的文件,mp3文件作为一种编码压缩过的文件格式并不能直接对音频的数据进行很好的操作,我们都知道这种压缩过后的文件播放的时候也必须通过解码器才能播放,而解码出来的原始数据就是pcm数据。pcm数据包含了音频最原始的信息,对实现对pcm数据的处理就能实现对音频的处理。所以对MP3音频流程如下图Cr...
2018-08-31 15:44:29 5802 2
原创 android包体积减少利器,so动态加载
android包的体积也是考量一个程序好坏的一个标准,为了减少包的体积,我发现so是可以进行动态加载的,我们不一定要把so放到项目之中,可以放到网上进入app后在进行加载。 我们知道传统的so加载方式,是通过System.loadLibrary()的方法加载,而系统还提供了一个System.load()的方法来加载某个地址下的so,这里的问题是这个so的路径必须是app的私有路径,不是随便文件夹的
2017-02-17 14:20:08 756
原创 转换黑白的加载控件
转换黑白的加载控件看到腾讯动漫的一个加载控件是自己的图标由黑白变成彩色,就研究了一下写了一个类似效果的控件. 为了实现这个效果,开始我觉得用两张bitmap重叠实现最好了,先将一张黑白化,在让两张重叠的现实。后来我发现了 paint的setColorFilter的方法,通过这个方法我们可以轻松渲染出黑白的图片。闲话少说上代码:public class GraphDrawable extends D
2017-02-04 18:04:05 457
原创 键盘弹出监听和点击键盘完键盘收起
android中并没有暴露给我们监听键盘弹出和收起的方法,为了监听键盘我们只能来监听界面的高度变化,这个大前提是不会变的,以前的方法是自定义最外层的Layout,并在onLayout方法中进行判断,但这样的判断有的时候是不准确的。为此我想到通过监听DecorView的Layoutchange方法中,比较DecorView和屏幕真正高度的来判断键盘的状态。为了能有这个变化我们用了SOFT_INPUT_
2017-01-18 18:34:54 1566
原创 Agera 入门
Agera 入门Agera是什么? Agera(瑞典文的意思是”采取行动”)是一个超轻量级的Android库,帮助Android应用中有生命周期的组件(比如:Activities)或者组件中的对象(比如:Views)预准备数据。 通过加入函数式响应式编程,Agera可以在 什么时机, 什么线程 和 什么数据 层面上更清晰的分离数据处理流程,并且使用一个接近自然语言的单个表达式就能编写一个复杂的异
2016-11-16 18:27:30 672
原创 # android 上 mvp框架 和 agera关联
android 上 mvp框架 和 agera关联1. mvp 和 mvcmvc这个东西大家都非常熟悉了,在android项目中mvp大多的实现是,View层就是我买写的xml中的代码,Controller是我们的activity和fragment,model就是各种用来储存数据的bean。然而在真正开发中界面会随着数据的改变而改变,所以在activity中就会融合了ui的控制代码,又融合了数据的请
2016-11-15 18:34:37 370
原创 动态加载dex
动态加载dex忙中偷闲,研究一下dex的动态加载。这个东西应该是apk插件化和动态更新的基础。而其主要用到的就是DexClassLoader这个类。我们都知道android和普通java虚拟机是有区别的,它不能直接加载.class文件,他只能加载经过处理的dex文件。而加载这个dex文件可以通过DexClassLoader 和 PathClassLoader 两个类来实现这个方法。然而PathCla
2016-11-02 20:54:06 953
原创 android如何监听粘贴板内容
android如何监听粘贴板内容 最近项目做监听粘贴板弹窗的功能小记一下。其实思路很简单,写一个服务在后台跑,通过ClipboardManager服务来监听粘贴板。废话绍少说上代码:~~~java public class PasteCopyService extends Service { ClipboardManager clipboardManager;priva
2016-10-24 18:48:15 13458 1
原创 利用编译时注解来解决android权限请求问题
利用编译时注解来解决android权限请求问题这几天在开大神写的Dagger2 和 butterknife 这俩货同时用到了java中的一个特性就是编译时注解。注解在项目中是经常在使用的,比如标志是继承方法的 @Override。这些注解只有在我们写代码的时候才会发挥作用并不会。其实注释一共有3种,代码时,编译时,运行时。字面意思就是它的运行的范围。很多开源项目通过一局注释就能完成很多工做多是利用了
2016-09-14 09:32:23 1654 1
原创 带滑动菜单的Recyclerview实现
SwipeItemRecycler关于这个项目主要是实现的Recyclerview中item的滑动菜单。不是类似ios中的那个菜单。而是比较符合material design中的列表滑开菜单。这种控件在support包中并没有,网上的实现也大多是要重写RecyclerView。然而我认为这样并不好,所以就写了这个不需要引入新的RecyclerView的控件。使用java代码只要给Recycler
2016-04-13 16:20:21 4866 7
原创 android5.0 activity动画
android5.0上引入了最新的交换动画能够在不同的activity之间共享view效果非常的好。自己就写了一套通用的方法。地址
2016-04-05 15:48:43 277
原创 如何用python 写 adb 命令脚本
最近在学习python,python可以说是写一些小脚本的利器语法简单,做为最著名的就“胶水语言”用它来写一些命令脚本非常的方便。 今天就想如何用python执行adb的命令来安装应用 省了一边一边的去打adb的命令安装应用了,所以就查了下,发现真的好简单。 python 的os包中,可以通过os.system 或 os.popen来实现本地adb命令的调用。真的好简单。
2016-03-15 18:16:33 20941 3
原创 一个算法题
题目描述某省会城市街道纵横交错,为了监控路灯的运行状况,每条街道使用一个数字字符串标识该街道上所有路灯的运行状况。假设路灯只有如下3种状态(分别用数字0, 1, 2标识,一盏路灯只对应其中一种状态):0 标识路灯熄灭;1 标识路灯开启;2 标识路灯故障;请根据输入的字符串,找出该街道上连续的处于相同状态的路灯的最大个数。若两种状态的路灯数量相同,则返回最先出现的路灯状态。
2016-03-03 17:05:53 380
原创 android键盘监听方案
学习android从大三到工作已经差不多有两年了,虽然不能和大神相提评论但现在也算积累了很多的经验,现在想想也应该写一些东西记录一下了。 今天讲一些键盘监听,为啥想说这个呢?因为android并没有给我们最好的键盘监听的方案,也就是说键盘的打开和收起我们是没办法靠原生的API的只能考我们自己。 其实对于键盘的监听也是很简单的一件事情,有一点经验的人都知道,android的键
2016-02-01 14:28:23 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人