andorid
flowerff
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ViewPager以及导航小圆点实现无限循环
ViewPager以及导航小圆点实现无限循环 之前用View Pager做了一个图片切换的推荐栏(就类似与淘宝、头条客户端顶端的推荐信息栏),利用View Pager很快就能实现,但是一次无意间使用淘宝APP的时候,突然发现它的效果和我做的还不一样,淘宝APP的推荐栏可以左右无限循环切换,而ViewPager自身其实并没有支持这个功能。其实实现这个无限循环不难,只需要在数据源的首尾各添加一张多余的原创 2017-08-20 15:49:23 · 321 阅读 · 0 评论 -
LeakCanary还能这样????(自定义保存泄漏信息)
对于Android开发来说,用leakcanary来检测内存泄漏很是方便与快捷的。但是由于本人工作原因,LeakCanary用起来着实无法满足需求,因为我是开发机顶盒和车机的Android系统app,这个时候系统不发弹出Notifaciton,就无法看到内存泄漏的具体信息。有人会说看源码,在show提示Notification的之前,会保存当时分析的内存快照以及结果问题,如下:leakcana...原创 2019-01-22 10:43:07 · 670 阅读 · 1 评论 -
Android Studio已经依赖了库,但是无法import
将项目导入到另一台电脑后明明已经依赖的库,死活无法import。类似于implementation 'com.android.support:appcompat-v7:26.0.1’这种一大堆。可是这个库在我的代码里就是找不到类,import后面一堆红字,然后网上搜了无数方法,google() jcenter() mavenCentral()这三个也都在项目根目录的build.gradle...原创 2019-01-23 22:14:46 · 4101 阅读 · 1 评论 -
Android studio中多版本AndroidManifest文件编译打包解决
前言:在使用Android studio开发过程中,不免会遇到多版本多渠道编译apk,或者组件化,插件化开发apk。在开发过程中,自我开发调试和发布不同版本apk时,需要频繁的去修改AndroidManifest中的配置信息,这样不仅繁琐,还增加了工作量以及错误率。所以我们可以尝试将AndroidManifest也进行多版本区分。配置过程如下:首先在/src/main下建两个文件夹(不一定...原创 2018-11-19 20:31:53 · 4730 阅读 · 0 评论 -
比较浅显易懂的AIDL
Binder是Android中的一种跨进程通信方式,Android的四大组件、各种Manager 和其对应ManagerService等无不与Binder挂钩。从Android Framework角度来说,Binder是ServiceManager连接ActivityManager、WindowManager等Manager和他们相应ManagerService的桥梁; 从Android 应用层来...原创 2018-11-19 20:24:28 · 270 阅读 · 0 评论 -
AIDL连接池的实现
参考《Android开发艺术探索》学习一下AIDL的连接池实现回顾一下AIDL使用的大致流程:首先创建一个Service和一个AIDL接口,接着创建一个类继承自AIDL接口中的Stub类并实现Stub中的抽象方法,在Service的onBind方法中返回这个类的对象,然后客户端就可以绑定服务端Service,建立连接后就可以访问远程服务端的方法了。现在考虑一种情况:公司的项目越来越庞大了,现在...原创 2018-11-21 14:19:25 · 458 阅读 · 0 评论 -
利用SurfaceView实现帧动画效果,更流畅,更节约内存
利用SurfaceView实现帧动画效果在开发Android做动画效果的时候,有时候UI给开发一组动画实现的帧图片,如果说图片较少(十几张)、分辨率较低(几K,十几K),用帧动画实现应该没什么问题,但是如果有几十上百张、或者几百K或者上M的图片,这个时候用帧动画来实现其实就很有问题了,内存吃紧,会卡顿,OOM等问题随之而来。当然如果可以沟通UI改设计是最好的,但是如果非得这样做不可呢?本人就遇...原创 2018-11-05 23:11:17 · 1890 阅读 · 1 评论 -
自适应控件宽高大小加载bitmap图片的友好方式
自动计算BitmapFactory.Options 的inSampleSize 参数。代码如下: int reqWidth,int reqHeight) { // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFa...原创 2018-10-09 14:19:54 · 977 阅读 · 0 评论 -
针对多个帧动画相互切换且帧数较多情况的另一种实现方式,优化方案,流畅不卡顿
最近有一个项目,有很多组帧动画,每一组大概60帧左右,再不同的状态下回调不同的接口,动态的切换到不同的帧动画,但是不管每一帧只有10K左右,使用软引用,提前加载帧动画,这些操作都试过了,但是再切换动画的时候还是有不时的有卡顿。由于图片过多,效果异常卡顿,所以在这篇文章中就说一下帧动画的优化问题。 首先还是先来看一下android原生的帧动画的实现,代码如下:(1)帧动画的资源文件 放入...原创 2018-10-09 10:07:38 · 1034 阅读 · 0 评论 -
Android 收集Crash日志----UncaughtExceptionHandler
Android应用不可避免地会发生crash,也称之为崩溃,无论你的程序写得多么完美,总是无法完全避免crash的发生,可能是由于Android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。当crash发生时,系统会kill掉正在执行的程序,现象就是闪退或者提示用户程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的。更糟糕的是,当用户发生了crash,开发者却...原创 2018-10-12 16:39:22 · 345 阅读 · 0 评论 -
Android MVP模式直接用版本
引言 如果对于mvp和mvc不太熟悉的童鞋,请花一点时间阅读下面文字内容,纯手工打些本人一点粗糙的见解。或者问问度娘多多学习。熟悉者可直接跳过看干货,撸代码阶段。 在说mvp之前,相信大家应该都熟悉了mvc(model 、 view 、 control)。在Android的架构中Activity,fragment,布局的xml相当于View。然而在实际的开发过程中,Andr...原创 2018-05-22 15:29:15 · 635 阅读 · 0 评论 -
Kotlin--TODO("not implemented")异常
在kotlin实现接口的时候小白可能会遇到以下异常: 抛出异常:kotlin.NotImplementedError: An operation is not implemented: not implemented 在实现接口的时候IDE会自动为我们添加上: TODO("not implemented") //To change body of created funct...原创 2018-04-25 16:20:21 · 2313 阅读 · 1 评论 -
一个简单无脑的防止内存重启后导致Fragment重叠的解决办法
一个简单无脑的防止内存重启后导致Fragment重叠的解决办法谈起Fragment,对于开发Android的各位童鞋来说应该是家常便饭了吧。但是不得不说,Fragment的使用要比Activity的使用要复杂一些,使用Fragment摆在我们面前的坑也是很隐蔽,说不定啥时候就一脚踩了上去,还一脸懵逼。哈哈哈哈废话不多说了。进入正题,相比用replace,hide和show相信大家用得更多吧,那么大原创 2017-08-20 16:27:54 · 1263 阅读 · 0 评论 -
AudioRecord api的初步认知
相比AudioTrack作用播音,AudioRecord的作用就是用来录音的。api也简单易懂,使用过程中根据自身需求获取相应录音通道的PCM音频数据。1、用AudioRecord录制(read方法)下来直接保存在文件中的音频是PCM音频,也就是源音频,播放器没办法直接播放,需要转换为某一格式的音频。例如转为wave格式即可(在源文件前加44个字节来描述该音频------采样率、通道数、位宽等)...原创 2019-07-02 08:43:01 · 550 阅读 · 1 评论
分享