自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

原创 Retrofit源码解析

这个是我看完Retrofit的源码后,站在一个高的维度俯瞰整个Retrofit的架构得到的结论。Retrofit的出现就是对OKHttp做了一个二次封装,为什么要封装?我认为核心目的就是让使用更加的方便。都对哪里进行了封装?封装了请求参数。改为使用注解的形式,使使用更加的方便,RESTful风格可读性更强。封装了请求过程。OKHttp中我们需要自己执行请求和回调,这个过程Retrofit帮我们封装了。封装了结果的处理。这里分两个部分数据解析回调内容。

2024-05-06 15:55:06 542

原创 SharedPreferences源码解析

上面问题有笔者亲身经历过的面试题,也有网上找的,确实如果没有看过SP源码的话,第一次面对这些问题真的会一脸懵逼。下面我们结合源码看下SP,顺便也找找这些问题的答案。

2024-05-04 19:39:55 969

原创 Error running ‘Attach debug to process‘

网上找了很久没有找到原因,怀疑是自己的Android Studio版本太高了,遂卸载Android Studio。卸载后安装:Android Studio Hedgehog | 2023.1.1。原来版本是:Android Studio Iguana | 2023.2.1。

2024-03-08 10:53:51 1613 5

原创 Java阿拉伯数字转汉字表述

面试遇到算法题,就是把阿拉伯数字转化成汉字的描述,比如123是一百二十三,10080是一万零八十自己尝试实现了一下,发现实现的太麻烦,代码太多而且容易有考虑不到的地方,下面贴出,自己的写法和网上找的比较简便的写法自己的写法:public class NumConvertUtil{ private static final String[] nums=new String[]{"零","一"...

2019-03-22 11:30:19 1105

原创 Mac连上WIFI但是无法上网的特殊情况

今天遇到个关于Mac的问题记录一下打开电脑,打开微信可以正常使用,但是一会过去后,打开百度打不开了,微信发不出去了,在网上搜到几种解决方案,我直接把链接发出来Mac连上WIFI但是无法上网的3种解决方案解决Mac能连上WIFI但无法上网的问题但是悲剧的是以上的几种方案都不是我的问题,全部试了未果个人问题和个人解决方案我的问题应该是vpn代理异常关闭导致的问题,打开系统便好设置点...

2019-03-12 11:29:11 31572 6

原创 Android PopupWindow监听点击外部事件

遇到一个需求,需要自己执行PopupWindow的显示和隐藏动画,但是PopupWindow点击外部区域时直接执行了dismiss事件,这样就没有我执行隐藏动画的机会,就想能不能阻断PopupWindow的dismiss事件,以下就是监听事件,判断不是PopupWindow内部区域的点击事件执行隐藏动画popupWindow = new PopupWindow(popContentView, L...

2018-12-21 14:34:24 6310 3

原创 Mac 升级pip 9.0.1到10.0.1遇坑记录

首先参考这里https://stackoverflow.com/questions/49768770/not-able-to-install-python-packages-ssl-tlsv1-alert-protocol-version首先你要pip安装某一个工具的时候遇到下面类似的错误Traceback (most recent call last): File "/Users/f...

2018-07-20 16:43:05 1938 1

原创 Android获取语言及地区总结

Android获取语言及地区总结Android中获取的地区是语言地区,它是随着系统语言的改变而改变的获取语言和地区分为两种: 获取系统语言和获取当前资源语言获取系统语言://Android 8.0以前Locale locale = Locale.getDefault();Log.d("------------"+locale.getLanguage() + "-" + ...

2018-07-09 16:27:24 9104

原创 ScrollView源码分析

前言Scrollview是我们经常使用的控件,假如一个界面的高度大于屏幕高度的时候,使用它可以很方便的实现一个界面的滑动显示,如果没有它,那么你的布局句会被压缩或者显示不全。一直想看看Scrollview内部怎么实现的,因为学习自定义view和自定义布局最好的老师就是源码,现在就来看看scrollview的源码。首先先看注释Scrollview是一个这样的view group,让放在它...

2018-06-29 21:14:27 2009 1

原创 Android获取assets文件路径

我们有时候需要放置一些资源例如json,字体,视频,音频以及其他格式的资源。为了保证这些资源不被编译,以便于我们在代码中可以正常使用,我们可以放置到assets文件夹下。这个文件夹在哪呢?看下图,Android Studio新建一个项目是没有这个文件夹的,你可以在需要的时候新建这个文件夹。我们如何使用这些文件呢?如何使用下面这一篇博客说的很详细,加载网页读取文本图片播放视频等等 http...

2018-05-27 12:54:38 59528 8

原创 获取TabLayout的真实宽度,TabLayout的Tab宽度

比如有时候你的TabLayout里面的条目太多,有一部分会被隐藏掉,你的产品希望在你的条目过多存在看不到的情况下,显示一个小箭头或者其他提示信息提示用户右边还是有东西的,这个时候就需要获取TabLayout的宽度和屏幕宽度比较,才可以去判断是不是条目已经超出屏幕了。如何获取TabLayout的真实宽度呢,也就是如何获取TabLayout的可见宽度以及超出屏幕的宽度?ViewGroup vg...

2018-05-04 15:42:57 2387

原创 OkHttp源码分析之ConnectInterceptor和CallServerInterceptor

前一篇分析Okhttp源码我发现拦截器部分的最后两个拦截器ConnectInterceptor和CallServerInterceptor的内容有点多,而且他们两个的联系也是紧密的,这里就抽出来单独分析。 转载请注明出处 https://blog.csdn.net/dreamsever/article/details/80141224先说ConnectInterceptor,连...

2018-04-30 08:46:40 511

原创 Okhttp源码分析之大致流程

我想如果说Okhttp是Android网络库中的霸主应该没人反对吧,还记得开始进入Android这个领域的时候有很多网络库,最开始有自己封装的,后来有了Volley,XUtils,asynchttpclient等等很多的框架出现,但是后来他们慢慢又被Okhttp取代了。今天就来学习一下Okhttp源码。 转载请注明出处 https://blog.csdn.net/dreamsever...

2018-04-30 08:32:21 260

原创 Eventbus源码之学习总结

转载请注明出处 https://blog.csdn.net/dreamsever/article/details/80031988网上关于Eventbus的源码解析有很多,但是我还是要自己写一下,看别人的源码解析,也许可以让我看懂大致,但是自己使用自己的语言总结分析,会让自己记录的更深,体会的更深。也许看EventBus官方给我们的图,让我们更好理解一些,可以把它翻译为事...

2018-04-21 18:30:55 452 1

原创 Android App应用启动流程(二)

还回到上一篇结束的地方:void startSpecificActivityLocked(ActivityRecord r, boolean andResume, boolean checkConfig) { // Is this activity's application already running? ProcessRecord app = mSer...

2018-04-14 19:05:24 695

原创 Android App应用启动流程(一)

关于app启动流程,网上有很多分析都很好,我这里就是总结一下,以便于下次看的时候可以更快的理解,如果能顺带帮到其他人,我也很快乐。阅读之前请先对AIDL有个大致的了解,最起码你要知道,有个类叫Stub类,它是Aidl编译生成的,继承于Binder类并实现aidl接口,是远端服务Binder对象的一个中间者,用来和客户端进行交互的。 关于本篇文章类似的文章我还推荐: https://blog.c...

2018-04-14 19:04:58 1509 2

原创 error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Wi

关注Tesorflow很久了,但是一直处于搭建环境阶段,说实话国内搞Tesorflow难度还是有点坑的,资料需要fq,下载更新需要fq,搜索看教程还需要fq。关键是Tesorflow本身也有很多问题,版本必须搭配才可以,这次我就遇到了版本的问题。以前是在mac上跑了一个小例子。跑通了,但是很慢,而且是我公司开发的mac,被我跑的呼呼响,我还是挺心疼的。据说GPU版本的比较快,所以我就在自己的神...

2018-04-08 22:06:10 2265 2

原创 Android数据存储之SharedPreferences详细总结

Android中常见的几种存储方式:SharedPreferencesSQLite数据库存储文件存储网络存储其中也许最常用的就是SharedPreferences存储和文件存储了,今天总结一下SharedPreferences。带着问题学习SharedPreferences: 问题:存储的位置是在哪SharedPreferences存储的文件格式是什么如何查看创建的...

2018-04-03 15:10:16 4472

原创 Android中查找时list,set,map比较

比如有个一需求要存放列表每一个item的ID,后面要去查找它,这个列表并不长,最多也就上百个,但是要使用List还是set还是map呢?添加1000000条数据:private void addData(){ new Thread(new Runnable() { @Override public void run() { ...

2018-04-02 10:56:32 1796

原创 java代码块,静态代码块,内部类,静态内部类的加载时机

public class TestStaticClass { public TestStaticClass(){ System.out.println("外部类的构造方法"); } static { System.out.println("外部类的静态代码块"); } { System.out.print...

2018-03-25 13:42:26 2322 3

原创 Fragment恢复(重建)后onActivityResult中发生null pointer exception

本文已同步发布到我的简书 https://www.jianshu.com/p/5fd03e4fbcaf前言先说场景:Activity A界面有Viewpager+Fragment,Fragment中是列表,在A界面的Fragment点击item跳转到 Activity B界面,注意这里是使用startActivityForResult方式启动的,然后在B界面呆着。这时候切...

2018-03-13 19:42:48 896

原创 Mac下android studio 查看库依赖关系

首先配置全局变量命令行输入:open .bash_profile打开全局配置文件添加gradle路径,也就是在里面添加以下片段,注意路径是你自己的路径#gradleexport PATH=${PATH}:/Users/xxxx/.gradle/wrapper/dists/gradle-4.3-all/2c1rgv6vofd95kl0ugolfeu5r/gradle-4.3/bin然后进入你的And...

2018-02-28 16:04:18 1894

原创 Okttp模拟PC浏览器发送http请求

有的网站为了不让app请求他们的API就做了限制,根据header判断是否是pc或者手机。如果是pc就让通过,如果是手机就返回错误。兵来将挡,水来土掩。我们可以把自己伪装成pc进行请求,这样就可以了。不过可不要拿来做坏事哦首先网站后台端是如何做的区分,通过判断用户的客户端的user-agent信息来区分用户设备,可以满足大部分用户的设备判断要求,若用户对自己的user-agent进行篡改,会导致当...

2018-02-11 12:40:20 3296

原创 Error:Execution failed for task ':app:processXXXDebugManifest'. > Manifest merger failed with multi

今天遇到一个问题记录一下:Error:Execution failed for task ':app:processXXXDebugManifest'.> Manifest merger failed with multiple errors, see logs出现这个情况 ,我第一时间百度找了方案 ,但是好像他们遇到的都不是我这种情况。我的情况是,依赖的library里面和我的app的m...

2018-02-11 11:29:47 6317 1

原创 Android获取文件类型是图片还是视频

我们开发从相册分享图片到App的功能,开发完成后发现一个问题:我们设置的是用户可以选择多张图片到app,但是有一种情况是有的手机可以分享一张图片和一个视频,尴尬的是我们不支持视频分享。这就需要区分用户分享过来的哪个是视频哪个是图片,如果是视频的话需要截取视频的第一张缩略图作为图片分享关键代码:拿到分享过来的uri 为imageUriString imagePath = imageUri.getPa...

2018-02-08 15:52:53 6407

原创 关于Webview在RecyclerView的第一个条目中,第一次加载时点击回顶部的问题

记录一个问题的解决:开发中需要开发一个界面是使用Webview加载图文详情,然后下面是评论列表,点击评论可以弹出评论进行评论。当时采用的方案是RecyclerView嵌套webview,webview的布局作为header添加到RecyclerView顶部。中间解决了各种大小问题后,发现还有一个问题:就是第一次进来,webview还在加载中,这个时候去点击webview或者点击评论按钮,会发现web

2017-12-20 14:13:43 1986

原创 com.android.dex.DexException: Multiple dex files define Lcom/xxx/demo/BuildConfig

今天遇到一个问题,编译不通过,报错如下:com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/xxx/demo/BuildConfig;原因是你的项目的主包名和依赖库的主包名冲突了,解决办法:如果你的依赖库是

2017-12-05 15:37:16 3537 2

原创 记一次百度面试有感

前一段时间去百度面试了,我想bat是很多做技术开发人的一个梦,总感觉做了技术这一行要是能进一下bat,那么自己的技术生涯也算完美了。前一段时间有机会去百度面试了一下,虽然没进,但是收获还是很多了。虽然百度的鹏寰大厦地理位置很偏,虽然大楼外面看上去不是很显眼不是很现代化,虽然进去面试看公司布局也不是很整洁高大上。但是百度终究是百度,从进玻璃门到大厅,再到休息区很多的沙发,高大威猛的大堂引导小伙,二维码

2017-11-27 11:44:05 998

原创 Android inflate方法总结

前言 本文已同步发布到我的简书 http://www.jianshu.com/p/83438249ae91inflater.inflate(R.layout.layout_inflate_test,null);inflater.inflate(R.layout.layout_inflate_test, root,false);inflater.inflate(R.layout.lay

2017-11-26 11:45:14 602

原创 有输入框时退出Activity导致前一个界面的布局被顶上去问题

一个小问题记录一下有打开软键盘的界面退出时,使前一个界面的布局被顶起来。比如,A界面有RecyclerView,而且底部有一个布局,这时候从A界面跳转到B界面,在B界面做了一些输入操作,输入后,点击确定按钮,没有收起软键盘直接执行了setResult(RESULT_OK,data);finish();这个时候销毁B界面跳转回A界面,导致A界面的底部被顶起来的,虽然这个

2017-11-21 17:04:38 637

原创 聊聊PhoneWindow,getDecorView(),setContentView

转载请注明出处 csdn: 简书:http://www.jianshu.com/p/a4618a9290e1前言最近想实现一下滑动返回,看了一下几个开源的滑动返回的库,或多或少都有点问题,就想自己做一下。看了一下他们的源码,发现直接被activity.getWindow().getDecorView(),activity.getWindow().getDecorView().getCh

2017-11-03 22:47:33 1287

原创 OkHttp请求回调中response.body().string()如何调用两次

如果你已经调用了response.body().string()一次,再次调用会提示你IllegalStateException: closed,为什么会发生这样的情况,你可以看下面的博客 http://blog.csdn.net/m_xiaoer/article/details/72859908 但是有时候你非要调用response.body().string()两次,下面是一种解决方案,就是

2017-09-19 11:15:56 4628

原创 使用Okhttp执行put空的RequestBody

由于特殊原因,客户端需要请求一个put请求,但是什么参数都不需要,具体的参数已经在url里面了,但是Okhttp必须要在Put是传递一个RequestBody参数 源码:public Builder put(RequestBody body) { return method("PUT", body); }...public Builder method(String meth

2017-08-24 17:41:32 2577 1

原创 Android自定义圆角以及向下箭头的ImageView

尊重原创,转载请注明出处:http://blog.csdn.net/dreamsever/article/details/76615281圆形图片ImageView以及圆角ImageView,我相信大家在网上都可以找到,但是有时候像弹窗类型的图片效果怎么实现呢?既有圆角,下面或者上下左右还有一个小的下角凸出来,关键是给人的感觉还像是把这个图片切成这个样子的。我尝试使用Android中shape给它加

2017-08-03 13:39:35 3502

原创 使用TabLayout实现单行的flowlayout(标签流式布局)

前言最近项目需求做一个单行的标签选择功能,效果类似下面的,一说到标签选择和流式布局,我想很多同学都会想到鸿洋的FlowLayout,但是很多事情都是不完美的,这个库挺好的,但是不支持单行的标签显示。我想要的是那种单行显示,并且多余的看不到的可以左右滑动。这个时候我想到了今日头条和网易新闻这种头部的选择器,这种效果不是跟我们产品想要的效果差不多吗。然后就开始使用TabLayout实现 开始关于Tab

2017-07-12 11:06:33 4519 2

原创 Fresco加载资源图片是黑色问题

使用fresco加载资源图片,根据官网的方法:Uri uri = Uri.parse("res://" + "应用包名"+"/"+ R.drawable.xxx);simpleDraweeView.setAspectRatio(0.8f);//我的图片要宽高比simpleDraweeView.setImageURI(uri);直接运行效果挺好的,但是打完包以后,本来显示好好的图片变成了一片黑色

2017-06-23 17:43:36 2776

原创 Android Edittext设置负数以及小数

1,设置Edittext只可以输入数字,只需要给EditText这样设置xml:android:inputType="number"代码中设置:edit.setInputType(InputType.TYPE_CLASS_NUMBER);2,设置Edittext可以输入正负数字,需要给EditText这样设置xml:android:inputType="numberSigned"代码中设

2017-06-22 11:07:48 11417 2

原创 Android给CardView加边框以及水波纹效果

最近开发App遇到一个效果,先看效果如下图,就是列表中item每个都是CardView,然后cardView有一个边框红色或者其他颜色,还需要item点击有水波纹效果。 设置边框,圆角等我们很自然的想到了shape,先定义shape,<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android

2017-05-27 15:52:16 22089 6

原创 Android Webview 加载显示比iOS慢的问题

前言最近实现一个Webview加载文章,然后下面可以显示评论以及进行评论的界面。当进入这个界面的时候先来一个加载动画,当webview加载好了,在onPageFinished方法里面就隐藏起来加载动画显示文章界面内容。当功能实现完了以后发现一个问题。就是动画执行很久才消失,用户体验很不好,我估计当用户看完加载动画进去看文章时都没有心情看文章了。但是,当我在iPhone上效果时iOS的效果就很快,简直

2017-05-04 14:38:19 7529 1

原创 当透明状态栏遇到输入框

难点是:1,如果布局中要用到软键盘,就必须加上android:fitsSystemWindows=”true”属性,否则键盘弹出时,adjustResize属性不起作用,这样就会导致软件盘覆盖输入框。但是当你加上android:fitsSystemWindows=”true”时会导致状态栏变成灰白色2,华为手机,准确的说是Android原生的系统在你设置完透明状态栏后会是半透明,并不是透明

2017-04-26 16:26:32 2549

ParallaxScrollingDemo

Android的Viewpager视差滑动效果

2016-10-28

滑动展示图片

滑动展示图片,折叠效果,可用于商品图片的展示,百度糯米电影图片展示

2015-11-02

汇编语言例子

由轻松汇编编写,在屏幕中央开一个窗口显示自己的名字(以拼音显示)

2013-12-28

空空如也

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

TA关注的人

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