android笔记
文章平均质量分 84
JasonGaoH
技术宅,从事Android开发,目前在小红书。
展开
-
解决CoordinatorLayout的动画抖动以及回弹问题
在使用CoordinatorLayout来实现Android中的一种吸顶的时候,遇到了两个CoordinatorLayout的滑动问题,这里做下记录。这里使用CoordinatorLayout实现的是一个tab吸顶的效果,类似淘宝,京东首页的一个效果。头部区域展示各种类型banner卡片,中间是类似TabLayout的可点击tab,下面是feed卡片,可以一直下拉加载,并且feed卡片区域使用...原创 2019-10-12 10:49:58 · 3599 阅读 · 1 评论 -
RecyclerView中出现item重复问题的一次记录
问题背景前不久我们项目中由用户反馈说遇到笔记重复的问题,而且不只一次遇到类似的反馈。这种重复笔记总是出现的feed流的中间位置,如下示意图所示:这个图画的有点丑,凑合看,意思大概就是这样的。接下来,我就得追踪下这个问题了,开始时我几乎就一口咬定是接口返回的有问题,由于前几次后端没有日志,好像之前的反馈就那么过去了,直到后面又出现一次重复笔记的问题,这次是公司内部员工出现的,于是后端也通过...原创 2019-09-30 09:44:59 · 4630 阅读 · 1 评论 -
谈谈android中的内存泄漏
写在前面 内存泄漏实际上很多时候,对于开发者来说不容易引起重视。因为相对于crash来说,android中一两个地方发生内存泄漏的时候,对于整体没有特别严重的影响。但是我想说的是,当内存泄漏多的时候,很容易造成他OOM的,因为android给每个app的分配的内存是有限的,而且当发生内存泄漏的时候,对于app的体验也会不好,容易造成卡顿等不好的体验。Java内存结构 上面展示的是Java虚拟原创 2017-12-25 15:17:56 · 2590 阅读 · 2 评论 -
关于layout_centerHorizontal、layout_gravity、gravity的区别
layout_centerHorizontal是相对于RelativeLayout的布局属性如果设置为true,就将该控价设置在相对于父控件水平居中的位置layout_gravity针对LinearLayout的一种控件对齐方式,可以把值设置成下列值:center_vertical、center_horizontal、center等等gravity控制控件内文字的对齐方式举个栗子:在写一个简单的原创 2017-03-30 10:28:36 · 12456 阅读 · 1 评论 -
你知道android中的视差特效吗
阻尼效果(视差特效)空间,微博很多地方都有这种下拉出现的”阻尼“效果,这种效果最早在ios上出现,如今android上这种功能也是很常见了。先看效果图:该功能可以分为两个点: 1. 当ListView下拉的时候,顶部的HeaderView会有一个拉长的效果; 2. 当下拉一段距离后,ListView会复位,执行一个简单的回弹动画。这个功能实现起来挺简单的,下面来介绍如何实现:第一个功能:(阻尼效原创 2016-12-07 23:05:39 · 2133 阅读 · 0 评论 -
android自定义ViewGroup(侧滑菜单)
侧滑菜单的简单实现不少APP中都有这种侧滑菜单,例如QQ这类的,比较有名开源库如slidingmenu。 有兴趣的可以去研究研究这个开源库。这里我们将一种自己的实现方法,把学习的 东西做个记录,O(∩_∩)O!首先看效果图:这里我们实现的侧滑菜单,是将左侧隐藏的菜单和主面板看作一个整体来实现的,而左侧隐藏的菜单和主面板相当于是这个自定义View的子View。首先来构造该自定义View的布局:自定义原创 2016-11-27 22:14:13 · 1878 阅读 · 0 评论 -
android学习之Service
服务是安卓中的典型组件,一般组件都需要在清单文件中注册。服务能够长时间的运行在后台,并且不提供用户界面。其他的组件能够开启服务 并且在用户在开启其他应用的时候该服务仍然能够继续在后台执行。一个组件通过bind的方式绑定服务,并且该组件能与之交互。最典型的案列就是播放音乐,播放器应用在后台仍然能够播放音乐。服务,简单的解释就是,长期在后台运行并且没有界面的组件。类似天气预报和股票显示的应用,需要原创 2015-11-02 16:42:09 · 863 阅读 · 0 评论 -
jni开发初试
简单jni流程初试JNI java本地开发接口JNI 是一个协议 这个协议用来沟通java代码和外部的本地代码(c/c++)。 通过这个协议,java代码就可以调用外部的c/c++ 代码, 外部的c/c++代码也可以调用java代码。首先学习熟悉下简单的jni开发流程: 1.创建一个android工程 这个工程实现一个简单的功能: 使用jni这种技术打印一个由底层C语言返原创 2016-09-25 19:36:29 · 855 阅读 · 0 评论 -
android开发中Settings结构简单分析
Settings界面结构简单分析Setting是android系统很重要的模块,这个模块并不是很复杂,这部分也一直在看,很多时候都是在看某个具体的选项,比如WLAN,蓝牙这样具体的源码,但是对于主界面的布局以及结构并不清楚。 在使用Hierarchy Viewer工具可以看到Settings模块的主界面显示的是Settings, com.android.settings/com.android.原创 2016-08-03 20:25:53 · 13449 阅读 · 3 评论 -
android学习之使用AIDL实现进程间的通讯
一般在android中,每个应用程序都有自己的进程。每一个应用程序都是运行在自己独立的进程里面的,并且进程拥有独立的内存空间,它们的数据时独立的。正常情况下,不同的进程之间一般是不能进行通讯的。 这里简单介绍下进程间的通讯:在操作系统中,不同的进程之间的通讯方式一般有:信号量,消息队列,管道等等。一、信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止原创 2015-11-02 21:26:56 · 1049 阅读 · 0 评论 -
仿微信通讯录右侧快速定位字母表控件的实现
仿微信通讯录右侧快速定位字母表控件先看效果图:界面比较单调,凑合看,主要看功能。这种控件在很多应用的通讯录的界面,MIUI里面的通讯录都有这个功能,其实这是一个自定义View,相对来说,这个并不是一个多么复杂的自定义View。下面介绍一下这种控件的实现方法:首先,自定义View,一般是对View的增强,因为系统提供的控件不能满足需求,一般情况下,都是继承View原创 2016-08-22 22:41:52 · 10559 阅读 · 0 评论 -
Android中的Parcelable接口
之前在写一个android一个小项目时,遇到一个问题,当一个实体类中持有一个Bitmap类的对象时,并且该实体类需要进行网络传输时,仅仅实现Serializable会抛出一个异常: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called C原创 2015-08-08 22:34:22 · 719 阅读 · 0 评论 -
android学习之Activity的生命周期
生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法。在这个过程中,会针对不同的生命阶段调用不同的的方法。 Activity是android中四大组件之一,是最常见的应用组件,也是用的最多的组件,它能够提供一个界面与用户进行交互。Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate o原创 2015-11-02 13:52:50 · 701 阅读 · 0 评论