自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TT的博客

记录自己的技术学习,笔记

  • 博客(35)
  • 收藏
  • 关注

原创 ContentProvider的使用,以及工作原理

什么是ContentProvider?ContentProvider是Android4大组件之一,我们平时使用的机会可能比较少。其底层通过Binder进行数据共享。如果我们要对第三方应用提供数据,可以考虑使用ContentProvider实现。如何使用与其他的ContentProvider通信。要实现与其他的ContentProvider通信首先要查找到对应的ContentProvider进行匹配。android中ContenProvider借助ContentResolver通过Uri与其他的Con

2020-05-14 00:11:15 3453

原创 Gldie实现角图标(支持gif)不放弃ImageView的centerCrop

最近小王项目上遇到一个需求,图片实现圆角。大家可能会想这个问题很简单啊。直接使用Glide圆角变换不就完成了。为什么小王还写了一个笔记呢?问题:在使用下面的代码加载圆角图片的时候没有效果val roundedCorners= RoundedCorners(30)var options = RequestOptions().transform(roundedCorners) Glide.w...

2020-04-27 23:08:01 573

原创 根Activity启动学习笔记

小王今天再次看了《Android进阶解密》的根Activity这一章节。发现上次看过的内容又已经忘记的差不多了。总结了看书存在的问题,有些知识点不方便使用代码进行训练。如果自己不进行总结十分容易再次忘记。就像没看过一样。于是小王总结了下面的学习笔记。具体的启动流程可以自行在网上搜索。在书中根Activity启动这一小节中作者将启动过程分为三个部分 Luncher请求ActivityM...

2020-04-24 00:32:57 187

原创 Android Tv版嵌套滑动实现极光云视听顶部导航效果

Android Tv版嵌套滑动实现极光云视听顶部导航效果通过这篇文章您可以和小王一起: 了解嵌套滑动的流程,原理 自定义Behavior的原理。 简单的实现TV版的嵌套滑动 小王最近很开心,上次快速的解决了可与提出的焦点问题。小王明显感觉 到了客户对自己的信任增加。最近客户又提出想要实现极光云视听Tv的顶部导航效果。页面焦点下滑的时候自动隐藏顶部,待滑动到顶部的时...

2020-04-06 22:51:11 1080 1

原创 20分钟,我们一起实现爱奇艺式焦点寻找

20分钟,我们一起实现爱奇艺式焦点寻找焦点处理是从Android手机开发到TV开发必须要经历的第一个关卡,最近从手机开发转到Tv开发的小王就遇到了这个问。小王经过一个月的努力,XXTV版项目1.0版本终于迭代完成,本以为可以轻松过一个周末,但是版本刚发出去,客户便提出了问题。为什么我们的列表焦点不能像爱奇艺一样在最左边按左键的时候焦点向上,在最右边按右键...

2020-04-02 22:47:11 333

原创 Activity的启动流程

文章参考:一张图搞定,Activity的启动流程《Android进阶解密》四大组件的工作过程。前言:Activity可以说是四大组件中最常见的的一个组件,我们平时打交道也是最多的。那么它到底是如何启动的呢?今天我们来一探究竟anctivity的启动流程分析(基于Android8.0)一般而言我们要启动一个activty,只需要调用Activity的startActivity...

2019-12-14 15:50:14 198

原创 C语言基础基本数据类型

C中的基本数据类型整型int long short char整型可以被signed和unsigned进行修饰,他们的区别是取值范围不同。比如:signed int 占四个字节,那么它的范围是:-2,147,483,648 到 2,147,483,647unsigned int 占四个字节,那么它的范围是:0 到 4,294,967,295关于数据的长度巧记:4...

2019-11-20 23:29:05 213

原创 Android TV开发KeyEvent事件处理流程&焦点寻找

目录前言KeyEvent事件的传递机制mView究竟是什么?DecorView的dispatchKeyEventactivity的dispatchKeyEventViewGroup的dispatchKeyEventKeyEvent事件分发总结View的焦点寻找当前焦点元素的查找下一个焦点元素的查找View请求焦点View的requestFocus方...

2019-11-07 01:41:10 1986

转载 Binder学习指南

binder学习指南

2019-10-30 23:30:29 121

原创 Binder 学习笔记

目录前言什么是Binder?为什么跨进程通信要使用binder?Binder通信模型从AIDL的角度来理解BinderAIDL java代码分析demo:手写最简单的aidl问题文章参考:写给 Android 应用工程师的 Binder 原理剖析Binder学习指南前言本篇文章主要围绕下面的几个点进行Binder学习的记录。什么是B...

2019-10-29 23:00:32 826

原创 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 1081

原创 Linux——本机终端SSH连接VirtualBox中的Linux虚拟机

由于VirtualBox安装的虚拟机不能安装增强功能,不能实现linux虚拟机copy文件到windows。因此想要尝试通过xshell来连接本地虚拟机。实现文件复制。1. 确认使用NAT连接打开虚拟机,进入主界面:右击所要设置的虚拟机,设置(Settings)->网络(Network):如上所示,确保使用NAT网络连接方式;2. 配置端口转发规则...

2019-10-12 00:30:25 969

原创 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 423

原创 你所不知道的Rxjava原理

目录RxJava是什么?rxjava核心设计思想RxJava使用&原理分析基本使用基本使用源码分析线程切换线程切换源码分析RxJava变换总结:RxJava是什么?根据官方文档:RxJava是ReactiveX(Reactive Extensions)的Java VM实现:一个库,用于通过使用可观察序列来编写异步和基于事件的程序。rxj...

2019-09-18 06:42:01 567

原创 Fragment的入门与使用

fragment基本概念:Fragment 表示 FragmentActivity 中的行为或界面的一部分。您可以在一个 Activity 中组合多个片段,从而构建多窗格界面,并在多个 Activity 中重复使用某个片段。您可以将片段视为 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且您可以在 Activity 运行时添加或移除片段(这有点像可以在不同 ...

2019-09-08 15:19:22 172

原创 Glide生命周期的绑定&缓存实现分析

这一篇是在上一篇的基础上加深我们对glide的理解,如果您对glide还没有一个感性的认识建议看一下。Glide的加载流程分析:https://blog.csdn.net/qq_35561554/article/details/100618455这篇主要回答上篇文章的几个问题:RequestManager如何与Activity&Fragment进行生命周期的绑定由上一篇文章...

2019-09-08 07:49:55 807 4

原创 Glide加载流程分析

再开始写文章之前非常感谢这篇博客的作者。是他的这篇文章给了我glide源码阅读的一些灵感。在这之前几次阅读都没有搞明白的glide加载流程在阅读了他的这篇文章后参考类似的方法对glide的源码结构有了一个比较清晰的认识。下面是他的这篇文章的地址:https://blog.csdn.net/carson_ho/article/details/79212841前言glide是我们项目...

2019-09-08 07:47:57 986

原创 View的事件体系

今天我们要学习的内容是《Android开发艺术探索》第三章View的事件体系。作者大致从五个方面进行知识的讲解。基础知识的准备作者为了让我们更加容易理解后续的知识,需要我们掌握几个和View相关的基础知识。 什么是View? View是Android所有控件的基类,是一种界面的抽象。Android中的View可以分成两类,View和ViewGroup。整个界面通过ViewGrou...

2019-08-01 20:56:43 135

原创 AIDL的基本使用

目录基本概念:AIDL支持的数据类型基本实现使用AIDL接口实现双向调用AIDL远程注册导致内存泄漏总结:感谢:写这个的原因基本概念:Android Interface Definition Language,即Android接口定义语言。Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序...

2019-07-11 23:30:22 233

原创 activity生命周期

目录前言原文概述:典型情况下的生命周期:生命周期方法详解关于Activity生命周期的几个结论:关于典型情况下生命周期的两个问题:异常情况下的生命周期:资源相关的系统配置发生改变导致Activity被杀死并重建资源内存不足导致优先级低的activity被杀死设置在系统某些资源发生改变的时候不重新创建activityAndroid资源配置改变对于ac...

2019-07-07 10:23:32 527

原创 ExpandableListView实现仿QQ好友列表

想要实现仿QQ好友列表,最初的想法是ListView嵌套ListView但是实现起来太过复杂个人感觉需要处理的东西太多,不太适合新手操作。经过查阅资料发现android已经有控件实现了这个功能。它就是ExpandableListView。ExpandableListView是ListView的子类使用的时候我们同样需要为它添加适配器这里自定义适配器实现ExpandableListAdapter接口...

2019-07-03 06:26:12 1450 3

原创 flutter自定义dialog

自定dialogDialog 在我们的日常开发中是必不可少的,Flutter 也提供了 AlertDialog 、SimpleDialog 等供我们选择,但是对于开发还是不够的。在android原生的开发中我们可以通过继承dialog或者setContentView的方式来进行设置自己的ui。在flutter中没有setContentView的方式。要实现自定义dialog我们可以通过...

2019-05-23 07:26:12 2735

原创 SpringBoot启动异常 Error starting ApplicationContext.

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2019-05-12 18:44:45.365 ERROR 13480 --- [ main] o.s.b.d.LoggingFailureAnalys...

2019-05-12 18:56:55 1332 1

原创 三板斧详解CoordinatorLayout

CoordinatorLayout三板斧第一式:依葫芦画瓢主要作用:根据官方文档的解释,CoordinatoryLayout可以理解成一个超强功能的FramenLayout,CoordinatoryLayout主要有两种用法 1.作为app顶层布局的装饰或者镀铬。2.作为与一个或多个子视图进行特定交互的容器。关于CoordinatorLayout的基本使用在这一片博客已经写得很清楚了我也是...

2019-04-16 00:26:57 831 10

原创 android启动流程之谷歌翻译

先贴上谷歌官方文档地址,英文好的朋友可以直接去看:https://developer.android.com/topic/performance/vitals/launch-time应用起动时间用户希望应用程序能够快速响应并快速加载。 启动时间较慢的应用程序无法达到此预期,并且可能会令用户失望。 这种糟糕的体验可能会导致用户在Play商店中对您的应用评分不佳,甚至完全放弃您的应用。本文...

2019-04-07 18:52:55 430

原创 为自己打造通用的音乐播放代代码库

1.写这边文章的目的:从实习到现在两年的时间,在这段时间内学习和播放器打交道的时间算是比较多然鹅在做新的项目的时候居然发现自己还是必须重新再写一遍以前的代码,重复的干同样的一件事。感觉这样十分浪费时间,希望能封装一个比较灵活的播放器代码以后只需要集成添加对应的业务逻辑即可。因此参照着以前项目上视频播放器的东西。想要自己封装一个比较通俗易用的音视频播放模块。希望这个模块能够达到以下的功能。 ...

2019-03-19 01:07:31 447

原创 VMware上linux虚拟机与windows互相复制与粘贴

最近在学习linux进行一些c++的编译,发现不能把windows中的内容复制到虚拟机,感觉很是烦恼。借助网络上的资料,解决了这个问题,做一个操作记录。方便自己以后查阅。本地环境:windows10 虚拟机VMware上运行的ubuntu1.安装vmware-tools的工具打开选择安装vmware tools 工具,如果已经安装过的话有重新安装vmware tools的选项之...

2018-11-07 22:59:21 15051

原创 dart语法

学习地址:https://www.dartlang.org/guides/language/language-tour一、基本语法1、函数(方法)声明 函数名+()+{}例如:printInteger(int aNumber){ print('The number is $aNumber');}///程序入口///可以带一个list参数或者不带main(){ var nu...

2018-11-07 20:54:49 496

原创 flutter入门

flutter环境安装:flutter 中文网(https://flutterchina.club/ )下载flutter sdk 解压到自己电脑目录,将flutter的bin目录加入用户环境变量path中, 2.添加用户环境Android_HOME,路径为Android SDK的路径否则可能出现:X Unable to locate Android SDK3.android studi...

2018-10-25 23:48:25 269 1

原创 第二章 策略模式

策略模式:定义了算法家族,分别封装起来,让他们之间可以相互替换。可以在不同的时间使用不同的业务规则书中的例子:商场促销public class CashContext { public static final String STRATEGY_NORMAL = "正常收费"; public static final String STRATEGY_RETURN = "满减...

2018-09-03 21:00:41 143

原创 第一章:简单工厂模式

面向对象语言三大特性:继承、封装、多态。程序设计目标:可维护、可复用、可扩展,高内聚低耦合。简单工厂模式:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例借用书上的例子:简易计算器的实现抽象计算操作类:public abstract class Operation { protected double numberA = 0; protected do...

2018-09-02 16:09:17 111

原创 自定义通用RecyclerView上拉加载与下拉刷新&为RecyclerView添加Adapter

 概述RecyclerView是一个比ListView更加灵活的View,它通过设置LayoutManager来布局子item,常见的LayoutManager有LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager(交错布局)。那么我们应该怎样来实现通用的RecyclerView上拉加载与下拉刷新呢?实现思路在...

2018-08-05 08:56:22 1836

原创 android内存管理

android 内存优化是作为一个android开发人员必须要掌握的知识之一,它能够让我们的app更加的流程增加用户的体验感。java内存分配策略:1.静态存储区(方法区):主要存放静态数据、全局static数据和常亮。这块内存在程序编译时就已经分配好,并且在整个程序运行间都存在。2.栈区:方法执行时被执行,方法体内的局部变量都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将被自动释放。因...

2018-03-28 00:14:59 133

原创 android anr探索 谷歌官方anr(部份)翻译

1.什么是anr:Anr是指android应用程序主线程被阻塞,导致Application Not Responding(ANR)这个错误被触发。如果这个应用在前台的话,系统会弹出一个对话框给用户。2.产生anr的原因:当更新ui线程的主线程不能响应用户输入或者绘制的时候就会产生anr。anr在满足下列几个条件之一就会被触发。    (1.)当你的应用在前台,你的应用不能对按键进行响应或者广播没能...

2018-03-18 03:01:08 316

原创 Unpacking objects

最近在使用git的时候从远程拉取代码出现,一直停留在Unpacking objects没有反映。通过网络资料查询将git 拉取的地址中的htts换成了git。解决了改问题。即:https://github.com/XXXXXXXXXX  换成 git://github.com/XXXXX参考链接:https://stackoverflow.com/questions/7731785/git-stu...

2018-03-16 00:00:03 13143 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除