自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

翻译 [译] Kotlin协程的设计-coroutine创建的过程是什么样的?

一篇Kotlin协程的文章翻译

2022-11-24 21:42:31 324 1

原创 ADB远程桌面连接本地手机

远程桌面连接本地电脑连接的手机

2022-08-24 18:18:05 4719 2

原创 Surface系统概述

​ 对于应用开发者来说,Android的界面以及各种UI元素都是通过View以及系统组件来显示的,那么在系统层面,我们写的View是怎么绘制到显示屏幕上的呢?​ 我们知道SurfaceView是一种比较特殊的View,它包含有自己的Surface,我们今天就从SurfaceView入手来分析一下图形系统的大体轮廓。​ 本文是基于Android10来分析,相信后续的版本不会有太大的变动。在分析过程中会省略一些异常处理或者与分析无关的代码,使流程更加清晰。.........

2022-08-08 22:26:04 1317

原创 Android内存分析-meminfo流程以及部分内存的组成

android meminfo分析

2022-08-08 22:24:04 2721

翻译 The JSR-133 Cookbook for Compiler Writers [译]

JSR133 cookbook翻译

2022-08-08 22:21:00 174

原创 okhttp之连接

从okhttp之拦截器中,我们知道建立连接是在ConnectInterceptor中完成的,今天具体分析一下实现细节在默认情况下,是没有现成的连接使用的,所以从新建开始看一、建立连接 val newConnection = RealConnection(connectionPool, route) newConnection.connect( connectTimeout, readTimeout, writeTimeout,

2021-07-15 21:44:57 493 1

原创 okhttp之拦截器

okhttp的拦截器是项目中的精髓代码,今天我们来具体分析一下,base4.9.1版本我们已经知道拦截器是在RealCall中添加的: val interceptors = mutableListOf<Interceptor>() interceptors += client.interceptors interceptors += RetryAndFollowUpInterceptor(client) interceptors += BridgeInterce

2021-07-15 21:42:28 3892

原创 Android 自定义View实现文字描边

Android中实现文字描边的方式有几种,大概有:1、TextView叠加 这种方式灵活性较差2、在TextView的onDraw之前绘制一次相同的文字3、完全自定义,调用两次drawText第二种和第三种方式本质是一样的,都是调用两次drawText方法。代码: if (mTextPaint == null) { mTextPaint = new TextPaint(); mTextPaint.setTextSize(textSize);

2020-08-21 17:01:22 646

原创 Handler源码分析

Handler的源码及工作流程已经是老生常谈了,是每个Androider必备的技能,今天我们也来分析一下一、HandlerHandler我们一般用来进行“子线程进行耗时操作->更新UI”的操作,那么这样的操作是如何实现的呢,首先我们来看Handler的源码。首先从构造函数开始,我们可以看到有一个@hide标记的构造函数,这个我们不做分析,因为是给系统来做一些操作的,其他的全部都执行到这个...

2020-04-03 14:37:29 130

原创 OkHttp源码分析

OkHttp是Square公司开发的用于网络请求的第三方框架,这几年非常流行,也是很多面试会问到的东西,今天我们来分析一下部分实现。一、使用一般使用方式是新建一个OkHttpClient对象,通过Builder来构建一个Request对象,最后通过OkHttpClient的newCall方法来实现构建Call的实现类,最后通过enqueue方法来进行请求: OkHttpClient okH...

2020-03-03 18:54:22 105

原创 记一次Android Studio编译异常

最近电脑总是蓝屏,所以重装了一次win7系统,然后重新安装Android studio,然后发现在build的时候一直报一个错误:A failure occurred while executing com.android.build.gradle.tasks.MergeResources$FileGenerationWorkAAPT2 aapt2-3.5.1-5435860-windows ...

2020-02-18 11:19:55 1490

原创 Android大量文件扫描及存储方式

最近在做多媒体应用,由于是TV应用,所以我们插入U盘之后就需要扫描U盘文件,并存到数据库里面,这就需要遍历U盘所有文件。一、遇到的问题第一种方式,使用系统自带的MediaScanner,使用系统的一些接口来获取数据的信息,但是感觉系统对于扫描过程中的监听不够友好,而且MediaScanner对于大量文件扫描极慢,由于TV上面会有对于移动硬盘的需求,所以我们要考虑到扫描速度,不然的话,用户体验会...

2019-11-23 16:49:24 1425

原创 Android中的Sqlite基本使用与模糊删除

sqlite是一种我们日常工作中经常使用的数据存储的方式,适用于一些需要长期储存的,或者是一些大量数据的存储,今天我们来介绍一些基本使用。1、基本使用首先需要继承SQLiteOpenHelper类,我们可以看到SQLiteOpenHelper这个类的说明:/** * A helper class to manage database creation and version managem...

2019-10-13 19:44:01 549

原创 HandlerThread和IntentService理解及源码分析

HandlerThread和IntentService,使用场景较少,但有些特定的场景会比较好用。顾名思义HandlerThread,本质上是一个Thread,IntentService,本质上是一个Service,只是继承了Thread和Service类之后,它们内部做的一些动作使得这两个类不太一样,接下来我们来分析一下具体用法和源码:一、HandlerThread1、使用 Handle...

2019-10-09 15:13:29 302

原创 自定义一个画对号的View

最近需要做一个1s以内画一个对号的需求,所以需要自定义一个简单的View首先分析一下需求:画一个对号,也就是先画一条线,等这条线画完之后再画另外一条线,但是之前这条线不能消失,也就是随着时间推移,修改绘制的终点,等第一条线绘制完成之后,固定终点,开始绘制第二条线,直至绘制完成。完整代码:public class TickView extends View { private Pai...

2019-08-01 17:05:52 216

原创 RecyclerView刷新焦点丢失

最近在做一个wifi列表的功能,wifi广播过来之后就会刷新recyclerview,由于是TV应用,所以就会发现焦点已经调到别的地方去了,想对item做什么操作就会变得很痛苦。解决的方法也是从网上找的:在Adapter的构造函数里面加入:setHasStableIds(true);并且重写getItemId方法,返回position即可:@Overridepublic long g...

2019-07-10 10:35:52 1789 2

原创 Android通过执行脚本提高cpu占用率

最近有个需求需要在cpu占用80 90%的时候进行测试:脚本内容(test.sh):#!/system/bin/shwhile truedodone即执行一个死循环,这里最好是用linux编辑然后保存,否则android不能识别1、push test.sh到data/下,chmod 777 data/test.sh2、查看cpu核心数,可以通过cat /proc/cpuinfo查...

2019-06-12 21:08:59 3616 1

原创 AsyncTask源码分析

平时工作中很多时候会用到AsyncTask,多用于"子线程处理数据->主线程更新UI"(类似于Handler,后面会发现其实内部实现也是Handler)。之前也是一知半解,只知道用法,不知道原理,前段时间看了一些分析的文章,这里也走一遍流程,也加强一下印象。基本用法:private class DownloadFilesTask extends AsyncTask&lt;URL,...

2019-03-25 22:46:58 131

原创 Android组件位移动画实现

Android中存在几种动画,包括补间动画、帧动画以及属性动画(Android3.0之后,现在应该没有3.0以下的设备了吧),这几种动画实现的原理是不同的:①补间动画:又叫视图动画,包括一般视图的平移、旋转、缩放、透明度等,是通过确定组件 的开始状态和结束状态,由系统进行补全②帧动画:通过每一帧的播放产生动画③属性动画:通过修改view的属性来实现动画效果所以补间动画不会修改view的实际...

2019-03-25 21:48:12 1014

原创 zxing Android导入及一些适配

前段时间需要扫描二维码及做一些与服务器通信的动作,所以也了解了一些zxing框架,当前最新的版本是3.3.3首先需要下载zxing的源码并作为library,Android studio File-&amp;gt;New-&amp;gt;New Module-&amp;gt;Android library,然后将!这两个文件夹下的源码导入到library中,注意包名要一致,android-core里面只有一个文件,直...

2019-01-20 23:04:43 1042

原创 Android动态权限获取总结

自从Android6.0之后,很多比较关键的权限被标记为危险权限,只能通过动态获取,只在AndroidManifest.xml里面注册是不起作用的:危险权限:权限组名权限名称CALENDAR(日历)READ_CALENDAR WRITE_CALENDARCAMERA(相机)CAMERACONTACTS(联系人)READ_CONTACTS WRI...

2019-01-20 22:14:12 479

原创 Toolbar基本使用总结

每次使用Toolbar之前都要查询一番,这里做下小结,免得日后又要查询。Toolbar是代替ActionBar来使用的,所以要使用Toolbar就要设置主题为去掉默认的actionBar,然后把自己设置成actionBar一、布局文件使用:&amp;lt;android.support.v7.widget.Toolbar android:id=&quot;@+id/toolbar&quot; an...

2018-11-11 22:26:55 124

原创 自定义Recyclerview实现下拉刷新

Android已经有很多开源的下拉刷新的库可以使用,比如官方的SwipeRefreshLayout,但是出于练习的目的,还是自己写了一下下拉刷新的逻辑和实现,有些简陋:首先自定义MyRecyclerview继承自Recyclerview,继承的目的是获取recyclerview的滑动过程的数据,通过位置来判断是否需要刷新,主要是重写onTouchEvent方法:private MyLinear...

2018-10-23 22:00:18 354

原创 RecyclerView监听滚动位置,使用SwipeRefreshLayout实现下拉刷新和上拉加载

SwipeRefreshLayout是google官方的刷新加载框架,基本使用: &amp;lt;android.support.v4.widget.SwipeRefreshLayout android:id=&quot;@+id/common_refresh_layout&quot; android:layout_width=&quot;match_parent&quot; android:l...

2018-10-12 23:16:57 911

原创 Recyclerview使用总结及一些坑

日常开发中,使用到列表试图的地方很多,以前都是使用ListView,而现在则都使用更为强大、更为灵活的RecyclerviewRecyclerView 基本使用:1、布局文件引入 &amp;amp;lt;android.support.v7.widget.RecyclerView android:id=&amp;quot;@+id/common_recycler&amp;quot; and...

2018-10-12 22:58:47 676

原创 一个Banner控件的使用

首先在gradle中引入implementation 'com.youth.banner:banner:1.4.10'该控件github地址 :youth banner布局文件引入banner&amp;lt;com.youth.banner.Banner android:id=&quot;@+id/home_banner&quot; android:layout_width=&quot;match_pare...

2018-10-10 23:31:50 492

空空如也

空空如也

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

TA关注的人

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