自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Glide源码分析(二)

上一章我们讲到engine.load方法。今天我们接着分析。我们知道这里的engine是在glide类初始化的时候生成的。1. Engine#Engine public Engine( MemoryCache memoryCache, DiskCache.Factory diskCacheFactory, GlideExecutor diskCacheEx...

2019-09-09 20:32:51 201

原创 Glide源码分析(一)

先写一个简单的例子: Glide.with(context).load(url).into(imageView);看源码我们要记住一个原则,就是站在宏观的角度先去理解他。再慢慢延伸到细节。glide的源码比较多。我们先沿着主线去一步步分析它。glide使用了外观模式,一般第三方的sdk通常都会这么做,节省用户学习使用的成本。我们来看看glide.with。1.Glide#with...

2019-09-07 14:10:22 212

原创 OkHttp 源码分析(二)

从上篇我们简单的分析了一下okhttp的请求过程(Okhttp源码分析(一)),今天我们来看一下okhttp比较核心的地方。先放一张图。okhttp的网络请求,采用了分层+链式的结构。每层处理特定一个情况。层层过滤处理,最终把respone回调给用户。首先我们接上一篇来分析:Response response = getResponseWithInterceptorChain()...

2019-09-03 17:32:10 228

原创 OkHttp 源码分析(一)

首先我们来看一段代码:String url = "http://wwww.baidu.com";OkHttpClient okHttpClient = new OkHttpClient();final Request request = new Request.Builder() .url(url) .build();Call call = okHttp...

2019-09-02 15:50:50 128

原创 Retrofit 源码学习分析(三)

今天,我们来分析一下retrofit的使用。 mApiStores = mRetrofit.create(ApiStores.class); public <T> T create(final Class<T> service) { Utils.validateServiceInterface(service); if (validateE...

2019-08-27 12:41:12 175

原创 Retrofit 源码学习分析(二)

上一篇,我们简单的分析了retrofit的写法。这次我们加上几个方法。 Retrofit mRetrofit = new Retrofit.Builder() .baseUrl(URL) .validateEagerly(true) .client(getOkHttpClient()) ...

2019-08-26 15:41:09 103

原创 Retrofit 源码学习分析(一)

本文章是基于retrofit 2.4.0 分析,我们一起来分析学习一下。首先,我们写一个基本网络请求Retrofit mRetrofit = new Retrofit.Builder() .baseUrl(URL).build();接下来,我们一步步分析。 public Builder() { this(Platform.get()); ...

2019-08-26 15:24:30 107

转载 android 内存回收机制

Android APP 的运行环境  Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使得其进程调度与资源管理与其他平台的 Linux 有明显的区别。主要包含下面几个层次:Application FrameworkApplication Framework 将整个操作系统分隔

2017-07-26 15:33:50 429

转载 二、android jni开发 音频编解码

需求背景:博主目前所在的公司是一家做视频通讯的公司,所以对音频,视频这一块对编码方式都有一定的要求,由于之前一直没有接触JNI这一块,突然让我去做音频的转码还是有一定的苦难的。一开始对于JNI编程我是拒绝的,一直遵循着能用Java源码,就绝不用Jni那一块。但是,显示总是残酷的,网上的资料,Demo很少,或者都是年代久远,还不能运行的。所以我抱着试一试的心态去接触JNI,也还蛮有收获的,好

2017-07-15 16:28:22 1112

原创 一、android studio JNI 的简单编写使用。

jni网上资料挺多的。好吧好吧,感觉坑点有点多。敢不敢写的详细点啊。只能自己写写了。首先就是先创建一个项目了。这个不用说了。然后新建一个类。写一个native 方法 ,如public class JniTest { public native String getHelloJniString();}然后build  make project项目。我们从build/in

2017-07-15 15:55:46 275

原创 android studio的开发和使用SDK总结

从网上看了许多资料。并且发现好多博客写的不太准确。只好自己总结一下了。一、开发SDK一般开发SDK都是基于自己已写的已写项目制作的。  首先更改项目中gradle的配置。applyplugin:'com.android.application'改为applyplugin:'com.android.library'。不出意外的话就可以构建成功了。网上说要依赖中要加入

2017-07-15 13:27:07 925

原创 android 数据加密AES

AES是目前对称加密中最流行算法之一。随着大数据越来越重要,信息安全随之人们开始关注起来。废话不多说。讲一讲AES加密。public static byte[] encrypt(String content, String password) {          try {                             KeyGenerator kgen = K

2017-07-14 11:00:56 235

转载 Android自动挂断来电(ITelephony的使用)

项目中需要在接收到来电之后把电话挂断,再做一些事情,在研究了Android源码以及参考了网络资料之后得出了如下方法: 1、定义并注册广播: Java代码  public void onReceive(final Context context, Intent intent) {          if (intent.getAction().equals(I

2017-06-20 18:55:47 1563

转载 PowerManager.WakeLock使用

public class WakeLockDemo extends Activity {      private PowerManager.WakeLock wakeLock = null;        //获取锁      public void acquireWakeLock(Context context) {          if (wakeLock == nul

2017-06-20 18:53:45 289

原创 Android 在应用中跳转到另一个应用中的方法

1、// 一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:Intent intent = new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);ComponentName cn = new ComponentName(packageName, c

2017-06-20 18:48:00 940

原创 listview 有阴影的解决方法

布局文件中给listview加入android:fadingEdge="none" 就可以解决了

2017-06-20 18:38:50 389

转载 Android 开发笔记——通过 Intent 传递类对象

Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。Intent中传递这2种对象的方法:Bundle.putSerializable(Key,Object); //实现Serializable接口的

2017-06-20 18:35:47 186

原创 Android List 去重问题

1,通过HashSet删除HashSet h = new HashSet(list); list.clear(); list.addAll(h); System.out.println(list); 但是缺点是 list顺序被打乱了。怎么保持顺序呢,嘿嘿Set set = new HashSet(); List

2017-06-20 18:31:21 2671

转载 Android Bitmap图片的压缩

得到图片的一些方式://第一种方式:从资源文件中得到图片 Bitmap rawBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); //第二种方式:从SD卡中得到图片(方法1) String SDCarePath = Environment.getExte

2017-06-20 17:53:10 441

原创 android 解决ScrollView和高德地图MapView滚动冲突问题

//requestDisallowInterceptTouchEvent设置父类的不可用,true表示父类的不可用 mMapView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event

2016-12-16 14:43:35 1466

转载 android中设置AlertDialog的大小 .

AlertDialog dialog = builder.setTitle("消息列表") .setView(layout) .create(); dialog.show(); //设置窗口的大小 dialog.getWindow().setLayout(300, 200); d

2016-12-16 14:21:03 3947

转载 Android中自定义checkbox样式

1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。[html] view plain copyxml version="1.0" encoding="utf-8"?>  selector xmlns:android="http://schemas.android.com/apk/res/and

2016-12-16 14:18:35 239

原创 android SharedPreferences的保存读取

//保存数据SharedPreferences sp= context.getSharedPreferences("name", Context.MODE_PRIVATE);Editor editor = sp.edit();editor.putBoolean("boolean", boolean);editor.commit();//读取数据Sha

2016-12-16 14:14:50 242

原创 android 隐藏显示软键盘

imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(v.getWindowToken(), 0);//隐藏imm.showSoftInput(v, 0);//显示

2016-12-16 14:11:55 261

原创 android 调用设置页的问题

许多人用下面的方法调用系统页。    Intent mIntent = new Intent();          ComponentName comp = new ComponentName("com.android.settings",         "com.android.settings.WirelessSettings");         mIntent.se

2016-12-16 14:09:22 484

空空如也

空空如也

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

TA关注的人

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