Android

👨‍💻‍记录自己作为 Android 攻城狮所学习以及接触到的一些技术知识 😎

一套包含了社区匹配聊天以及语音互动直播相关的社交系统模板项目

社交模板项目 一套包含了社区匹配聊天语音以及直播相关的社交系统模板项目,包括服务器端以及 Android 客户端 项目资源均来自于互联网,如果有侵权请联系我 背景及选型 一直以来都是标榜自己是一个喜欢开源的程序猿,一直想做一款能够被大家认同的开源项目,也是想提供给广大的新手程序猿一个比较完整系统的社交系统以供参考,因此有了这一套社交系统模板项目, 当前模板项目主要功能可以看下边的 功能与TODO 在实现社交相关项目时,少不了 IM 及时聊天功能,这里选择了自己比较熟悉的环信三方 SDK,环信 IMSDK 能够比较方便的实现自定义扩展功能,比如会话扩展,消息扩展等,消息效果可以看下方 项目截图 通话方面这里选择了声网提供的服务,看了下他们提供的功能还是比较多的,这里主要用到了语音通话,以及变声效果处理,感觉集成还是比较方便的,之前没用过的情况下,

Android开发RecyclerView使用关于notifyDataSetChanged的坑

前言 这两天在做一个新需求:在一个列表界面,有两种特殊布局,一种是包含倒计时的,一种是展示一个网格布局的图片六宫格,这个六宫格内部实现是使用RecyclerView加GridLayoutManager实现,因为前期实现这个界面使用的是ListView,并没有做好局部刷新,所以当倒计时刷新时,六宫格布局也跟着刷新了,但是刷新时发现图片一直在闪烁,明明已经对图片做了缓存,并且对ImageView做了判断,加载过得不应该再次加载才对,后来经测试发现,只有六宫格数据充满六个才会在这样,五个一下完全没问题,我勒个去,这把我给坑的,各种查找资料,搜索社区…… 原因 为这事还加了一天班,后来终于找到元凶,怪自己知识储备不够: RecycleView是为了替代ListView和GridView而设计的,同时还能实现瀑布流的效果,内部管理ViewHolder,无需我们自己手动创建ViewHolder保存,为我们自动做好缓存和ItemView的复用; 但是在使用时需要注意RecyclerView内部默认只缓存5个Item,如果调用notifyDataSetChanged(

Android开发键盘遮挡布局的问题解决

嗨 大家 嗨 大家,对又是我,我又来了,这次整理一个自己在Android开发中遇到的小问题;虽说是小问题,但是这个小问题还是比较蛋疼的;折腾了我将近两个小时,原因在于自己之前实现的一个功能,导致系统的用法在这里无效,这里记录铭记 解决 其实要想输入法不遮挡布局很简单,只需要在项目的配置文件中加上一个属性就行,就是在AndroidManifest.xml文件的activity中添加下边这一条属性: android:windowSoftInputMode="adjustResize|stateHidden" 明明是很简单的一个方法,不过因为我之前有设置在api v19上让状态栏透明,并且内容可以显示在状态栏之后,从而导致布局不会根据系统的布局而变动(输入法算是系统布局),所以要为自己的布局设置一个属性: android:fitsSystemWindows=

Android有没有必要时刻去关闭后台程序

前言 今天折腾手机的时候发现昨天刷的系统有个bug,所以又去逛了论坛,找了个rom刷上了,在逛论坛的时候发现了一篇帖子,让我这个从事Android方面工作的新手也对Android有了一个新的认识! 摘录如下 不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了,Android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动使用的速度。这本来就是Android标榜的优势之一,如果人为关闭进程,没有太大必要。特别是使用自动关进程的软件。 到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢? 其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,