- 博客(41)
- 资源 (12)
- 收藏
- 关注
原创 OKhttp源码(3.10)流程梳理
使用流程 OkHttpClient okHttpClient = new OkHttpClient(); //OkHttpClient okHttpClient1 = new OkHttpClient.Builder().build(); Request request = new Request.Builder() .url("") .build(); Call call = o
2022-03-18 16:53:37 667 1
原创 Glide源码(4.11.0)主线流程梳理(二)---load&into方法的内部逻辑
load 源码梳理根据上篇文章对with方法的梳理可以知道,Glide.with(this) 返回的是RequestManager对象,所以load方法在RequestManager类里面,现在我们分析一下load方法public class RequestManager implements ComponentCallbacks2, LifecycleListener, ModelTypes<RequestBuilder<Drawable>> { @NonNull
2022-03-09 22:17:12 2624 2
原创 Glide源码(4.11.0)主线流程梳理(一)---with方法的内部逻辑
本文旨在梳理代码流程Glide的使用Glide.with(this).load(imageUrl).into(view);第一步with,涉及到的几个关键的类Glide:主要做一些 init 工作,比如缓存,线程池,复用池的构建等等RequestManagerRetriever :主要是获得一个 RequestManager 请求管理类,然后绑定一个 FragmentSupportRequestManagerFragment :空白的fragment,用于管理请求的生命周期Requ
2022-03-07 21:02:29 506
原创 线程与进程知识入门(三)
文章目录阻塞队列什么是阻塞队列常用阻塞队列线程池为什么要用线程池?ThreadPoolExecutor 类分析线程池的工作机制线程池大小确定AQS线程与进程知识入门(一)线程与进程知识入门(二)阻塞队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一
2021-07-27 00:28:06 883 1
原创 线程与进程知识入门(二)
文章目录volatile关键字ThreadLocal辨析volatile关键字最轻量级的同步机制可以保证多线程下变量的可见性但是不能保证多线程的安全性,即“一写多读”一个线程对volatile修饰的变量进行写的时候,可以及时的让其他线程能够读取写之后的新值,这就是所谓的可见性;ThreadLocal辨析...
2021-07-19 18:09:55 271
原创 线程与进程知识入门(一)
线程与进程概念 进程是内存中一个运行中的应用程序,是系统运行程序的基本单位(系统进行资源<CPU、内存、磁盘I/O>分配的最小单位)。进程与进程之间是相互独立的。一个进程中可以有多个线程,线程之间是可以相互影响的,可以有关系的。进程本身是不执行任务的,真正执行任务的是线程。 一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域
2021-07-13 21:04:11 866
原创 Android 闪屏广告页面
Android 启动页的倒计时封装比较简单,直接上代码广告页viewpackage com.tkda.advert.view;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.util.Attribute...
2020-02-20 15:06:06 821
原创 常用命令
Android adb相关adb devices - - - 查看所有的设备adb shell 设备id - - - 进入设备pm list packages - - - 查看所有应用的包名pm list package | grep [包名关键字] - - - 查看包名包含关键字的应用pm list users -- - 查看当前设备的所有用户(安卓多用户模式)p...
2019-11-12 14:45:36 612
转载 Mac下完全卸载干净Android Studio
第一步: 卸载Android Studio应用及相关配置在终端输入:rm -Rf /Applications/Android\ Studio.apprm -Rf ~/Library/Preferences/AndroidStudio*rm ~/Library/Preferences/com.google.android.studio.plistrm -Rf ~/Library/Ap...
2019-09-11 13:42:15 853
转载 Android Studio中的productFlavors指定默认编译执行的任务
Android Studio中指定了 productFlavors如下:productFlavors { /*日常*/ Daily { } /*线上*/ Online { } /*预发*/ Advance { } }但是这个时候我们点击 Android Studio的调试按钮的时候,不知道究竟是使用哪个 Flavors来编译,比如在 Android Studio 1.5的...
2019-03-07 10:14:07 1390
原创 Git 本地新建分支关联远程分支
本地创建分支git checkout -b dev //本地创建一个分支名为dev的分支,并切换到dev分支上这个时候直接从远程dev分支拉取内容,有时候会拉取失败,为避免这问题出现执行以下命令即可git branch --set-upstream-to=origin/develop develop另外,如果是本地新创建的一个仓库,或者是新克隆的仓库,本地只有一个maste...
2019-01-28 11:31:45 779
原创 设置APP字体不随手机系统字体大小改变而改变
小技巧 笔记在BaseActivity 里面重写 getResources方法,更新一下配置就可以了 @Override public Resources getResources() { Resources res = super.getResources(); Configuration config = new Configuration()...
2018-11-14 14:00:27 1629
原创 Android StudioGradle 一键快速打包
转载请注明出处:在开发中,肯定会有测试包和正式包,进而就会有测试环境和正式环境(测试地址和正式地址),如何快速的自动切换呢,请往下看这里使用buildConfigField巧妙的替换,操作如下:android{... buildTypes { release { minifyEnabled false progua...
2018-10-27 15:05:19 3338
原创 Android studio Gradle lintOptions配置
lint配置详细说明转载请注明出处 lintOptions { // 设置为 true时lint将不报告分析的进度 quiet true // 如果为 true,则当lint发现错误时停止 gradle构建 abortOnError false // 如果为 true,则只报告错误 i...
2018-10-27 14:01:57 3767
原创 基于AccessibilityService实现微信消息的自动发送
基于AccessibilityService实现微信消息的自动发送功能需求了解AccessibilityService思路上代码文章参考 :https://www.jianshu.com/p/0d45e03eb1e0功能需求使用代码控制微信,实现微信的自动发送和接受了解AccessibilityService手机的辅助功能(不了解的可以自行Google /坏笑)不管怎么样,这个服务...
2018-10-21 13:40:45 6956 14
原创 Recyclerview 删除/插入item时,导致position错乱问题
RecyclerView的刷新分为内容变化和结构变化,结构变化比如remove和insert等并不会导致viewholder的更新,所以有时候我们使用notifyItemRemoved(position)或者使用notifyItemInserted(position);item的位置并没有发生改变,或者位置发生错乱,很是奇怪诡异,需要重新调用notifyDataSetChanged();才能刷新整个
2017-09-19 19:02:51 4040
原创 Android Studio 项目相关配置杂记
转载请注明出处:http://blog.csdn.net/darling_R/article/details/760503601.签名文件的安全配置有时候需要把项目上传到GitHub上,但是签名文件在gradle里面配置,密码都会暴露出去,所以采用以下方式配置就可以保证签名文件的保密性 1.在项目的根目录下,有一个文件:gradle.properties,这个文件一般是不需要上传的,打开这个文件
2017-07-25 10:08:53 662
原创 自定义异常捕获-CrashHandler
说来惭愧,新加入了一家创业公司,加班如同家常便饭,很久没有写博客了,这期间也遇到了不少问题,学习到了挺多东西,现在有点时间了,慢慢的来梳理一下自己遇到的问题吧程序崩溃,几乎是每个程序员都能遇到的问题,那么不想让APP弹出那个“程序无响应”的丑页面然后程序退出,应该怎么办呢?
2017-07-03 14:09:09 732
原创 贝赛尔曲线(二)应用场景之画板优化
自定义view之画板很简单,可以看一下下面这个例子。 简单的画板就是这样的,实现也很简单,主要思路就是,重写OnTouch方法,在按下的时候,记录下来起始点的坐标(tempX,tempY),然后将画笔的路径移动到起点坐标,mPath.moveTo(tempX,tempY);在移动事件下,首先记录下移动后的新坐标 x1,y1;然后调用mPath.lineTo()方法,传入起点和
2017-04-04 12:01:45 655
原创 贝塞尔曲线(一) 认识
看了徐医宜生 的视频,现在练习了一下贝塞尔曲线,其实挺简单的。下面来看看代码吧 首先借用官方的一个图来演示一下什么是贝塞尔曲线 也可以去[这里]看详细介绍 (https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Linear_curves) 二阶贝塞尔曲线 三阶贝塞尔曲线 二阶效果图: 主要弄清楚 起点 、终点、控
2017-04-03 18:42:04 566
原创 Android 热修复AndFix的简单使用介绍
AndFix是一个Android App的在线热补丁框架。使用此框架,我们能够在不重复发版的情况下,在线修改App中的Bug。AndFix就是 “Android Hot-Fix”的缩写。 就目前来说,AndFix支持Android 2.3到6.0版本,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime。 AndFix 的补丁文件是以 .apatch 结尾的
2017-03-13 19:53:26 479
原创 AndroidStudio多渠道打包详细讲解
转载请注明出处:http://blog.csdn.net/darling_R/article/details/61925391如今一款APP一般都会发布到不同的应用市场上来增加推广以及知名度,今天就来说说Android的多渠道打包。 拿友盟来举例说明。 1。首先添加对友盟的依赖:compile 'com.umeng.analytics:analytics:latest.integration'
2017-03-13 19:37:03 595
原创 Android6.0运行时权限的封装
在Android6.0引入了运行时权限,也就是不用在安装应用的时候把所有权限都声明,在用户需要出发某种危险权限的时候,及时的提醒用户是否授权权限,简单的使用方法会增加代码量,那么就来做一下封装吧,以便后面使用起来相对简单。
2017-03-10 22:32:26 392
原创 自定义View(三)-圆形进度条-百分比进度条
自定义view,其实很简单,最关键的就是在设计和绘制上,看你想怎么设计,需要给用户提供什么属性,然后在onDraw()方法里利用画笔Paint在画布caves上会出来,只要你熟悉了caves以及paint的使用,相信绘制一个view对你来说就很简单了
2017-02-12 16:57:19 791
原创 属性动画-简单入门
动画在Android开发中很常见,适当增加动画效果能给用户带来不一样的体验效果,那么今天就来人事一下安卓中的动画之一:属性动画 写一个小demo练习一下属性动画,效果图如下: 首先来看一下ObjectAnimator,代码很简单: 1。水平位移//第一个参数是操作动画的对象(控件),第二个是动画的属性(位移,旋转,翻转等),例如:translationX,是水平位移,rotation是旋转;第
2017-02-12 15:25:58 429
原创 ListView + CheckBox实现单选、多选效果
还是先来看看是不是你想要的效果: 不废话,直接上代码,很简单,代码里都有注释1 单选public class SingleActivity extends AppCompatActivity { private ListView l
2017-02-09 15:06:43 1609 2
原创 ListView 局部刷新
转载请注明出处:http://blog.csdn.net/darling_R/article/details/54861805 本文出自:哎呀小嘿的博客在软件里面,list列表几乎是必不可少的,但是有时候需要刷新列表,而notifyDataSetChanged()又是刷新全部数据,性能就会相对下降,为了解决定向刷新某一条数据,特意写了瓷片文章,希望能对一些需要的人有帮助,废话不多说,直接上
2017-02-09 13:39:26 415
原创 自定义View(二)自带清楚按钮的EditText
转载请注明出处:http://blog.csdn.net/darling_R/article/details/54861805 本文出自:哎呀小嘿的博客效果图如下: 步骤很简单,首先新建一个类ClearEditText 继承EditText 并且实现OnFocusChangeListener, TextWatcher这两个接口,用来监听控件获取焦点和输入文本内容的变化;1。重写三个构造方
2017-02-09 13:17:20 711
原创 Eclipse SVN插件安装
最简单快捷的方法就是下载插件包,然后替换原来的: 插件下载: http://download.csdn.net/detail/darling_r/9750644然后打开eclipse文件夹, 把原来的那连个文件夹替换掉;然后重启eclipse即可,简单吧。哈哈哈!
2017-02-09 11:13:40 246
原创 FragmentTabHost+ViewPage实现底部导航窗口切换
如今app的风格都大同小异,底部导航栏风格更是备受青睐,今天闲来无事就写一下比较常用的底部导航栏效果的实现,采用FragmentTabHost+Viewpager来实现。 文章末尾有demo地址。先看看效果图 第一步 先来看看mainActivity的布局: main_activity<?xml version="1.0" encoding="utf-8"?><LinearLayout x
2016-11-07 12:05:55 451
原创 github 初使用--傻瓜式详解
初次使用 1.在本地新建一个文件夹作为本地仓库,然后使用命令初始化git init 之后,此文件夹里会出现 .git文件夹,(此文件夹是隐藏的,电脑要设置隐藏文件夹可见)2.将本地仓库的所有文件追踪,然后commit到本地仓库git add . git commit -m "本次提交说明"本地代码准备好了,下面登陆一个github账号(没有的注册一个)
2016-10-15 20:32:40 458
原创 5.ButterKnife8.0版本(含)以后的使用注意事项
1.在项目的build.gradle里面配置,添加 classpath'com.neenbedankt.gradle.plugins:android-apt:1.8'2.在Module里的build.gradle里面添加 apply plugin: 'com.android.application'apply plugin:'com.neenbedankt.an
2016-09-08 09:28:00 1128
转载 Design库-TabLayout属性详解
1.什么是TabLayout在源码中给出了TabLayout的定义:TabLayout provides a horizontal layout to display tabs.意思很明显:TabLayout提供了一个水平的布局用来展示Tabs。Design库:AS有直接的引用,如果是Eclipse这里提供一个通道-Design库特别说明:Caused by:
2016-09-05 13:30:26 1519
原创 3.单例模式的多种写法
饿汉式: private static Singleton uniqueInstance = new Singleton(); 懒汉式 private static Singleton uniqueInstance = null;不加同步的懒汉式是线程不安全的。比如,有两个线程,一个是线程A,一个是线程B,它们同时调用getInstance方法,就可能导致并发问题。
2016-08-26 16:12:03 791
原创 2.Bitmap优化
主要有两类方法:一、decodeBitmap:对Bitmap不压缩,但是会根据屏幕的密度合适的进行缩放压缩二、compressBimtap:对Bitmap进行超过最大宽高的压缩,同时也会根据屏幕的密度合适的进行缩放压缩。publicclass BitmapDecodeUtil { privatestatic final in
2016-08-26 16:02:12 747
eclipse 分包jar包
2017-02-20
xUtils-3.0 jar包
2015-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人