Android
Android技术
泥瓦酱
这个作者很懒,什么都没留下…
展开
-
C++ debugger package is missing or incompatible - do you want to fix it
打开了一个别人的项目,无端端出现这个问题。Google了一大圈按照别人的方式也没解决,下面是我的解决方式点击 attach debugger to android process 及下图debug图标的时候出现这个问题出现如下图所示错误,C++ debugger package is missing or incompatible - do you want to fix it...原创 2018-08-24 10:13:05 · 921 阅读 · 1 评论 -
音频管理器
AudioManager这个音频管理器,它可以通过getSystemService得到。(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);方法介绍setStreamVolume(int StreamType,int index,int flags):直接设置手机的指定类型的音量值streamType 这原创 2018-02-02 16:39:04 · 346 阅读 · 0 评论 -
android那些事--上下文菜单
Menu的创建,选择监听 /** * 此方法用于初始化上下文菜单 并只会在第一次初始化菜单时调用 * 其中参数menu就是即将要显示的Menu的实例 * 返回true 则显示该菜单 返回false不显示 * * @param menu * @return */ @Override public boole原创 2016-10-13 19:27:05 · 310 阅读 · 0 评论 -
Scroll(一)滑动效果是如何产生的
滑动一个view,也就是改变其当前所处的位置。它的原理与动画效果非常相似,即通过不断的改变view的坐标来实现。所以要实现view的滑动,就必须监听用户的触摸事件,同时根据事件传入的坐标不断的动态改变view的坐标,从而实现跟随用户触摸的滑动而滑动。1.Android坐标系在android中,将屏幕最左上角的定点作为android坐标系的原点,从这个点向右是X正方向,向下是Y正方向。 andr原创 2016-01-13 21:53:31 · 657 阅读 · 0 评论 -
自定义view进度条ColorSeekBar
这里主要实现一个音乐播放器的进度条,效果如下 最初不是这个效果就是一个简单的进度条所以版本1就直接SeekBar处理了.这里需要处理的是随着播放进度的长度颜色值也逐渐改变,因此就采用了自定义view来处理这个需求.思路一个background表示总长度一个secondaryProgress表示缓冲进度一个progress表示当前进度过程需要在xml布局文件中使用并且需要使用自定义的属性原创 2017-06-23 22:57:49 · 528 阅读 · 0 评论 -
Message.obtain() 和Handler.obtainMessage()的区别
Message.obtain() 和Handler.obtainMessage()的区别性能更优越 尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。 这两种方式都比直接new一个Message对象在性能上更优越.具体表现原创 2017-06-08 14:26:59 · 9741 阅读 · 0 评论 -
android那些事--16ms的绘制工作
学习一下android 16ms问题记录一下手机屏幕是由许多的像素点组成的,每个像素点通过显示不同的颜色最终屏幕呈现各种各样的图像.1.组成像素点的颜色数据从哪里来在GPU中有一块缓冲区叫做 Frame Buffer ,这个帧缓冲区可以认为是存储像素值的二位数组, 数组中的每一个值就对应了手机屏幕的像素点需要显示的颜色.由于这个帧缓冲区的数值是在不断变化的,所以只要完成对屏幕的刷新就可以显示不同的图原创 2016-10-15 14:25:42 · 2111 阅读 · 0 评论 -
android那些事--点阵显示内部分析
看了一个点阵的实现形式,感觉挺好的.对其中的技术点总结一下.点阵的显示原理当字符或者图片在点阵上需要显示时,可以认为是数据源在对应的像素点上的像素是有或者没有.如果有那么这一个像素点九显示反之就不显示.那么需求就来了 如何得到资源数据(字符或者图片)像素值(这个像素值应该是个二位数组).像素值的存放在java中所有的数据底层都是byte(字节),字节数据可以存放到byte数组中.那么存放的问题就原创 2016-10-16 12:26:54 · 1937 阅读 · 1 评论 -
android那些事--WebView拦截使用
看了篇webview拦截的用法,记录一下WebView最简单的用法就是loadUrl方法. 常用代码如下. demoWv = ((WebView) findViewById(R.id.demoWv)); WebSettings settings = demoWv.getSettings();// 网页中含有JavaScript脚本时,需要调用以下方法,参数为true原创 2016-10-31 23:21:04 · 3394 阅读 · 0 评论 -
Android 组件化 之butterknife
解决组件化开发butterknife 在 library中使用的坑R.java、R2.java 是时候懂了butterknife 组件化开发 library 中 R 类问题的批量解决方案源码下载原创 2018-03-27 10:05:16 · 1557 阅读 · 0 评论 -
Widget 桌面小控件
widget介绍 App widget 是可以被嵌入到其它应用程序中的窗口小部件。流程 创建类继承AppWidgetProvider在layout中创建widget布局文件在res目录下创建xml文件夹,创建并初始化根节点为AppWidgetProvider的配置文件在清单文件中声明第一步继承AppWidgetProvider的类文件,同时配置第三步创建的配置文件在自定义的AppWi原创 2017-06-15 19:44:04 · 1669 阅读 · 0 评论 -
android 多媒体播放 MediaSession 框架
概念性简述 MediaSession 框架是 Google 推出专门解决媒体播放时界面和服务通讯问题。这个框架可以让我们不再使用广播来控制播放器,而且也能适配耳机,蓝牙等一些其它设备,实现线控的功能 要理解MediaSession框架,分别看看Media和Session:首先Media是媒体的意思,也就是说这个框架用于音视频媒体;而Session呢,翻译成中文就是会话的意思。一个原创 2018-02-03 14:59:03 · 8909 阅读 · 3 评论 -
时钟widget
要做一个时钟widget如图所示widget开发已经做过了很简单.很自然的方式在service里用Timer做个定时刷新就好了 timer.schedule(new TimerTask() { @Override public void run() { updateView(); }原创 2017-06-29 14:07:22 · 808 阅读 · 0 评论 -
apk安装失败原因列表
apk安装失败原因列表INSTALL_FAILED_VERSION_DOWNGRADE 当前要运行的版本 AndroidManifest.xml 中的 versionCode 和手机中已经安装过的该程序的 versionCode 做对比,如果手机中的 versionCode 比较高会出现此异常,解决方式 将 AndroidManifest.xml 中的 versionCode 修改大原创 2017-06-15 19:40:14 · 3670 阅读 · 0 评论 -
ARouter 跨模块跳转
ARouter 跨模块跳转基础的配置就不说了可以参考 https://github.com/alibaba/ARouterhttps://blog.csdn.net/zhaoyanjun6/article/details/76165252在实现不同模块间跳转时,出现了这么一个异常com.android.dex.DexException: Multiple dex files...原创 2018-03-27 09:15:47 · 4266 阅读 · 1 评论 -
序列化 Serializable与Parcelable
序列化 将对象转为字节序列的过程,我们称之为序列化。序列化的意义:序列化主要是为了解决对象的持久化以及对象在进程间的传递、网络传输等。持久化:当你在一个程序中,声明一个类的后,程序关闭,那么这个类也肯定是被内存释放了。如果你想要在程序关闭后,这个类内容仍然能存在,那么你就需要对它做持久化操作。常用的方法是:用对象处理流(ObjectOutputStream)来把这个类对象存储在本地原创 2018-02-01 16:41:40 · 174 阅读 · 0 评论 -
通过Content Provider 获取Audio信息
Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格。当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。MediaS原创 2018-02-02 18:17:39 · 747 阅读 · 0 评论 -
Scroll(二)滑动的实现方式
之前说了android的坐标系和触控事件,下面看 下如何使用系统的方法来实现动态的修改一个view的坐标。大概思路就是触摸view时,记下当前的坐标;当手指移动时,记下移动后的坐标,从而获取到偏移量并通过偏移量来修改view的坐标。条条大路通罗马,同样实现滑动的方式也有多种。废话不多说,代码才是硬道理。1.layout()方法我们知道view的创建过程onMeasure(),原创 2016-01-29 17:34:43 · 1522 阅读 · 0 评论 -
android那些事--初识反编译
一直比较喜欢反编译之类的操作,没有不尊重原创的意思.就是感觉好玩,或者向别人说的想看下别人怎么实现的.对于android反编译重要的是这么两步,java代码的反编译,资源文件的反编译.这个由apk的解压结果可以看出来. 由这个结论也就引出了反编译所需要的工具, dex2jar和apktooljava代码的处理得到jar文件解压的内容有个classes.dex文件. 1. dex文件是andr原创 2016-10-16 17:09:53 · 408 阅读 · 0 评论