android
文章平均质量分 84
qq_35561554
纸上得来终觉浅,绝知此事要躬行
展开
-
Gldie实现角图标(支持gif)不放弃ImageView的centerCrop
最近小王项目上遇到一个需求,图片实现圆角。大家可能会想这个问题很简单啊。直接使用Glide圆角变换不就完成了。为什么小王还写了一个笔记呢?问题:在使用下面的代码加载圆角图片的时候没有效果val roundedCorners= RoundedCorners(30)var options = RequestOptions().transform(roundedCorners) Glide.w...原创 2020-04-27 23:08:01 · 630 阅读 · 0 评论 -
根Activity启动学习笔记
小王今天再次看了《Android进阶解密》的根Activity这一章节。发现上次看过的内容又已经忘记的差不多了。总结了看书存在的问题,有些知识点不方便使用代码进行训练。如果自己不进行总结十分容易再次忘记。就像没看过一样。于是小王总结了下面的学习笔记。具体的启动流程可以自行在网上搜索。在书中根Activity启动这一小节中作者将启动过程分为三个部分 Luncher请求ActivityM...原创 2020-04-24 00:32:57 · 229 阅读 · 0 评论 -
Activity的启动流程
文章参考:一张图搞定,Activity的启动流程《Android进阶解密》四大组件的工作过程。前言:Activity可以说是四大组件中最常见的的一个组件,我们平时打交道也是最多的。那么它到底是如何启动的呢?今天我们来一探究竟anctivity的启动流程分析(基于Android8.0)一般而言我们要启动一个activty,只需要调用Activity的startActivity...原创 2019-12-14 15:50:14 · 231 阅读 · 0 评论 -
Android TV开发KeyEvent事件处理流程&焦点寻找
目录前言KeyEvent事件的传递机制mView究竟是什么?DecorView的dispatchKeyEventactivity的dispatchKeyEventViewGroup的dispatchKeyEventKeyEvent事件分发总结View的焦点寻找当前焦点元素的查找下一个焦点元素的查找View请求焦点View的requestFocus方...原创 2019-11-07 01:41:10 · 2072 阅读 · 0 评论 -
Binder学习指南
binder学习指南转载 2019-10-30 23:30:29 · 163 阅读 · 0 评论 -
Binder 学习笔记
目录前言什么是Binder?为什么跨进程通信要使用binder?Binder通信模型从AIDL的角度来理解BinderAIDL java代码分析demo:手写最简单的aidl问题文章参考:写给 Android 应用工程师的 Binder 原理剖析Binder学习指南前言本篇文章主要围绕下面的几个点进行Binder学习的记录。什么是B...原创 2019-10-29 23:00:32 · 931 阅读 · 0 评论 -
Android消息机制
文章参考:书籍 android开发艺术探索博客:https://www.jianshu.com/p/e172a2d58905https://blog.csdn.net/qian520ao/article/details/78262289前言Android的消息机制主要指的就是Handler的运行机制,handler常被我们用来进行ui的修改。简单的说就是在子线程进行耗时操作,然...原创 2019-10-24 20:39:05 · 1129 阅读 · 0 评论 -
Linux下编译FFMPEG 使用ndk r20
最近在学习android的音视开发。而ffmpeg是常用的音视频开发库。准备自己编译一下ffmpeg参考:1.0-FFMPEG-Android利用ndk(r20)编译最新版本ffmpeg4.2.1 https://juejin.im/post/5d831333f265da03c61e8a28?utm_source=gold_browser_extension环境准备基本环境下载...原创 2019-10-11 01:00:11 · 472 阅读 · 0 评论 -
Fragment的入门与使用
fragment基本概念:Fragment 表示 FragmentActivity 中的行为或界面的一部分。您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(这有点像可以在不同 ...原创 2019-09-08 15:19:22 · 198 阅读 · 0 评论 -
Glide生命周期的绑定&缓存实现分析
这一篇是在上一篇的基础上加深我们对glide的理解,如果您对glide还没有一个感性的认识建议看一下。Glide的加载流程分析:https://blog.csdn.net/qq_35561554/article/details/100618455这篇主要回答上篇文章的几个问题:RequestManager如何与Activity&Fragment进行生命周期的绑定由上一篇文章...原创 2019-09-08 07:49:55 · 853 阅读 · 4 评论 -
Glide加载流程分析
再开始写文章之前非常感谢这篇博客的作者。是他的这篇文章给了我glide源码阅读的一些灵感。在这之前几次阅读都没有搞明白的glide加载流程在阅读了他的这篇文章后参考类似的方法对glide的源码结构有了一个比较清晰的认识。下面是他的这篇文章的地址:https://blog.csdn.net/carson_ho/article/details/79212841前言glide是我们项目...原创 2019-09-08 07:47:57 · 1046 阅读 · 0 评论 -
View的事件体系
今天我们要学习的内容是《Android开发艺术探索》第三章View的事件体系。作者大致从五个方面进行知识的讲解。基础知识的准备作者为了让我们更加容易理解后续的知识,需要我们掌握几个和View相关的基础知识。 什么是View? View是Android所有控件的基类,是一种界面的抽象。Android中的View可以分成两类,View和ViewGroup。整个界面通过ViewGrou...原创 2019-08-01 20:56:43 · 176 阅读 · 0 评论 -
AIDL的基本使用
目录基本概念:AIDL支持的数据类型基本实现使用AIDL接口实现双向调用AIDL远程注册导致内存泄漏总结:感谢:写这个的原因基本概念:Android Interface Definition Language,即Android接口定义语言。Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序...原创 2019-07-11 23:30:22 · 399 阅读 · 0 评论 -
activity生命周期
目录前言原文概述:典型情况下的生命周期:生命周期方法详解关于Activity生命周期的几个结论:关于典型情况下生命周期的两个问题:异常情况下的生命周期:资源相关的系统配置发生改变导致Activity被杀死并重建资源内存不足导致优先级低的activity被杀死设置在系统某些资源发生改变的时候不重新创建activityAndroid资源配置改变对于ac...原创 2019-07-07 10:23:32 · 557 阅读 · 0 评论 -
三板斧详解CoordinatorLayout
CoordinatorLayout三板斧第一式:依葫芦画瓢主要作用:根据官方文档的解释,CoordinatoryLayout可以理解成一个超强功能的FramenLayout,CoordinatoryLayout主要有两种用法 1.作为app顶层布局的装饰或者镀铬。2.作为与一个或多个子视图进行特定交互的容器。关于CoordinatorLayout的基本使用在这一片博客已经写得很清楚了我也是...原创 2019-04-16 00:26:57 · 931 阅读 · 10 评论 -
ExpandableListView实现仿QQ好友列表
想要实现仿QQ好友列表,最初的想法是ListView嵌套ListView但是实现起来太过复杂个人感觉需要处理的东西太多,不太适合新手操作。经过查阅资料发现android已经有控件实现了这个功能。它就是ExpandableListView。ExpandableListView是ListView的子类使用的时候我们同样需要为它添加适配器这里自定义适配器实现ExpandableListAdapter接口...原创 2019-07-03 06:26:12 · 1476 阅读 · 3 评论 -
android anr探索 谷歌官方anr(部份)翻译
1.什么是anr:Anr是指android应用程序主线程被阻塞,导致Application Not Responding(ANR)这个错误被触发。如果这个应用在前台的话,系统会弹出一个对话框给用户。2.产生anr的原因:当更新ui线程的主线程不能响应用户输入或者绘制的时候就会产生anr。anr在满足下列几个条件之一就会被触发。 (1.)当你的应用在前台,你的应用不能对按键进行响应或者广播没能...原创 2018-03-18 03:01:08 · 342 阅读 · 0 评论 -
android内存管理
android 内存优化是作为一个android开发人员必须要掌握的知识之一,它能够让我们的app更加的流程增加用户的体验感。java内存分配策略:1.静态存储区(方法区):主要存放静态数据、全局static数据和常亮。这块内存在程序编译时就已经分配好,并且在整个程序运行间都存在。2.栈区:方法执行时被执行,方法体内的局部变量都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将被自动释放。因...原创 2018-03-28 00:14:59 · 164 阅读 · 0 评论 -
自定义通用RecyclerView上拉加载与下拉刷新&为RecyclerView添加Adapter
概述RecyclerView是一个比ListView更加灵活的View,它通过设置LayoutManager来布局子item,常见的LayoutManager有LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager(交错布局)。那么我们应该怎样来实现通用的RecyclerView上拉加载与下拉刷新呢?实现思路在...原创 2018-08-05 08:56:22 · 1882 阅读 · 0 评论 -
为自己打造通用的音乐播放代代码库
1.写这边文章的目的:从实习到现在两年的时间,在这段时间内学习和播放器打交道的时间算是比较多然鹅在做新的项目的时候居然发现自己还是必须重新再写一遍以前的代码,重复的干同样的一件事。感觉这样十分浪费时间,希望能封装一个比较灵活的播放器代码以后只需要集成添加对应的业务逻辑即可。因此参照着以前项目上视频播放器的东西。想要自己封装一个比较通俗易用的音视频播放模块。希望这个模块能够达到以下的功能。 ...原创 2019-03-19 01:07:31 · 483 阅读 · 0 评论 -
android启动流程之谷歌翻译
先贴上谷歌官方文档地址,英文好的朋友可以直接去看:https://developer.android.com/topic/performance/vitals/launch-time应用起动时间用户希望应用程序能够快速响应并快速加载。 启动时间较慢的应用程序无法达到此预期,并且可能会令用户失望。 这种糟糕的体验可能会导致用户在Play商店中对您的应用评分不佳,甚至完全放弃您的应用。本文...原创 2019-04-07 18:52:55 · 568 阅读 · 0 评论