自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

豌豆的专栏

心如止水,坚不可摧

  • 博客(127)
  • 资源 (12)
  • 问答 (2)
  • 收藏
  • 关注

原创 如何构建一个对象池并使用

在项目中,如果频繁的通过new 创建对象,之后让gc再去回收,这就很容易造成内存抖动,并且频繁的GC本身也会消耗内存,这样就很容易在一瞬间造成OOM 内存溢出,因为瞬间申请大量内存会造成内存占用突然升高,如果GC 还没来的及回收,或者频繁GC,内存就会居高不下,这时有两种处理方式,一个是减少对象的创建,一个是复用对象。

2023-08-09 18:07:49 668

原创 对象赋值和引用“=”问题回顾

【代码】对象赋值和引用“=”问题回顾。

2023-08-07 15:09:07 131

原创 Git 解决missing Change-Id in message footer

无论是linux 还是 window 出现这个,提示都是一样的,按照提示执行就好,网上基本都是这么说的,有的基本都是抄来抄去。这时执行 gitdir整行,如果提示失败 吧 scp -P 改成 scp -O 注意,O 一定是大写的。1. 如果你是在命令行执行的或者在android studio 下执行的。一定会出现'gitdir' 不是内部或外部命令,也不是可运行的程序。2. 这时需要打开你文件的根目录,也就你的.git 文件的上层目录。然后右键 打开git brash ,如果还没装,需要先安装。

2023-05-16 11:04:14 1503

原创 HashMap关键就这几个点,你Get到了?

容量是我们可以自己定义的,但是实际的容量必须是2的倍数,所以每次传入一个自定的容量,hashmap 就会根据我们传入的值检验一遍这个值,并通过程序获取这个值最近的一个2的倍数值作为实际的容量}目的是将一个数有效位不断向右移动生成一个2的倍数建减一的数2 10 减一 1 14 100 减一 11 3。...

2022-08-10 18:31:30 311

原创 Android studio 2021.1.1 patch2 aidl踩坑记录

使用注释踩坑无论使用的是 /******/ 还是 // 都会导致 通过 gradlew …:assembleRelease 编译失败,并且不会有任何的明确的错误提示1. 坑一比如使用了注释后出现看到编译器报错了,报了一个莫名其妙的错。2.坑2将注释加到最后一个函数上边报了一个更加奇葩的错误3.正常编译的版本第一次遇到这种奇葩的版本,这个是在我不断的试错排查各种原因的情况下一点一点试出来,供各位同学借鉴,目前没要找到解决版本,如果再aidl 接口中使用注释,我的办法是降低 s

2022-03-17 19:21:56 3448

原创 QNX 在车机系统中的应用

QNX 前因后果1.QNX 是什么2.QNX 在车机系统中的角色与应用3.QNX 在万物互联的车联网中的角色4.QNX 和Android 的关系是啥1.QNX 是什么 在没有接触汽车行业之前几乎没有听过这个词,但是做过汽车行业的人几乎全部都知道qnx,QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,它可能是最成功的微内核操作系统之一. 重点是实时操作系统和微内核,QNX是一个分布式、嵌入式、可规模扩展的硬实时操作系统 目前QNX 是黑莓旗下的软件公司,QNX在车用市场占有率达到75%,

2022-01-11 17:28:43 9676 1

原创 Android 传统蓝牙开发

传统蓝牙SPP连接步骤1. 设备扫描1.1和ble 设备一样,首先都需要获取蓝牙设备管理器1.2 设备搜索2.设备绑定配对3.设备解绑4.设备的连接5.数据发送5.数据的接收5.关闭连接1. 设备扫描1.1和ble 设备一样,首先都需要获取蓝牙设备管理器BluetoothManager bluetoothManager = (BluetoothManager) mContext.getSystemService (Context.BLUETOOTH_SERVICE);

2021-12-27 16:44:57 1442 1

原创 Android 蓝牙开发底层的几种协议介绍

Android 传统蓝牙开发1.HCI 协议2.RFcomm 协议L2CAP 协议SDP 协议ATT_GATT 协议HFP 协议SPP 协议适用范围:经典蓝牙模块多用在蓝牙音频模块,大量数据传输,对耗电量没有严苛要求的设备,同时又分为传统蓝牙和高速蓝牙模块。下来了解几个协议:1.HCI 协议HCI 层位于蓝牙高层协议和低层协议之间,提供了对基带控制器和链路管理器的命令以及访问蓝牙硬件的统一接口,它是我们实现自己的蓝牙设备要接触的第一个蓝牙协议,起着承上启下的作用。HCI通过包的方式来传送数据、命令

2021-12-23 16:00:14 7920

原创 Android Ble蓝牙开发

@[TOP](BLE Android 开发)1.权限设置 <uses-feature android:name="android.hardware.location.gps" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

2021-11-13 16:05:34 4521

原创 移动设备中传统蓝牙和BLE蓝牙的区别

在移动设备中现在大多使用4.0 以上蓝牙,从4.0开发蓝牙分为了经典蓝牙(classic Bluetooth)和低功耗蓝牙(Bluetooth low energy,简称BLE或者LE),所以在4.0 以前所说的蓝牙都指的是经典蓝牙,在蓝牙技术联盟(SIG)后续发布的蓝牙4.1/4.2/5.0,都是同时包含低功耗蓝牙和经典蓝牙的。1.使用场景不同两者的应用场景是不同的。一般而言,经典蓝牙主要应用在蓝牙电话接听,蓝牙耳机,蓝牙音箱等场合。低功耗蓝牙应用在可穿戴设备,IoT智能设备,健身设备,蓝牙鼠标键盘

2021-11-11 17:26:10 11105

原创 AIDL使用 进阶2

使用aidl 后如何彼此检测远程服务和客户端的生命周期。如果不能监控那将有一个很严重问题,程序可能会出现Crash ,报的基本是一个远程服务已经不存在。1.客户端如何检测服务端是否连接基本有三种方式:调用远程方法的时候捕获RemoteException(DeadObjectException); 调用IBinder的pingBinder()进行检测; 实现IBinder.DeathRecipient接口回调前两种是比较被动的,一般是你去使用的时候才去调用和验证。相比第三种比较靠谱些。

2021-11-04 20:53:52 433

原创 AIDL使用 进阶1

在之前的AIDL使用继承关系自定义类及调用数据异常问题记录,中具体讲了aidl 的基本使用,包括基本数据类型,自定义类型的传值问题。但是归根到底,使用的本质还是进程间的通信,但是任何进程间的通信都是需要成本的,如果你的业务较多,定义了N多个.aidl 文件,通过我上节讲的东西,那是不是在客户端和服务端需要定义N多个service 文件。相互绑定呢?其实我们可以换一种思路。在绑定服务的时候需要注册一个ServiceConnection 接口,绑定成功后会给出public void onSe

2021-11-04 19:41:48 169

原创 android studio 使用Generate JavaDoc生成javaDoc

通过android studio tool 下的Generate JavaDoc 生成javaDoc,可以选择整个项目,也可以选择某个moudle 或者某个路径进行生成,如果你想要生成的javaDoc 文件将依赖关系的库也生成,那么必须自定义,将需要的库也选中。1.普通javaDoc打开Generate javaDoc在这之前选择你要生成javadoc 的项目或者路径,并且Other command line arguments: -encoding utf-8 -charset utf-8,

2021-06-15 18:08:26 1871 2

转载 JAVA静态代理和动态代理理解

代理代理是英文 Proxy 翻译过来的。我们在生活中见到过的代理,大概最常见的就是朋友圈中卖面膜的同学了。她们从厂家拿货,然后在朋友圈中宣传,然后卖给熟人。按理说,顾客可以直接从厂家购买产品,但是现实生活中,很少有这样的销售模式。一般都是厂家委托给代理商进行销售,顾客跟代理商打交道,而不直接与产品实际生产者进行关联。所以,代理就有一种中间人的味道。接下来,我们说说软件中的代理模式。代理模式代理模式是面向对象编程中比较常见的设计模式。这是常见代理模式常见的 UML 示意图。

2021-06-02 14:23:22 126

原创 AIDL使用继承关系自定义类及调用数据异常问题记录

AIDL使用与注意事项基本使用1.aidl的定义,我这里定义了aidl 使用的三种场景2.service 的构建3.构建实体类实体类基类实体类父类继承关系引发的参数失效或为null 问题4.服务的绑定与数据通信5. 新建接口IDeviceListener.Stub 服务端收到为null 问题6.服务的注册基本使用1.aidl的定义,我这里定义了aidl 使用的三种场景package com.example.aidltestmoclinet;import com.example.aidltestm

2021-05-26 11:15:18 1155 2

原创 线程安全关键字synchronized和volatile

Java内存模型(JMM)提到这两个有关于线程的关键字,那么我们不得不提到Java的内存模型了(JMM),下面我们先看一下Java内存模型在处理多线程方面的工作原理图。Java内存模型(java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取出变量这样的底层细节。工作内存是线程私有的,各个线程之间不共享,主内存是共享内存,正常情况下当线程完成操作后会将工作内存刷新到主内存中,但是刷新的时机不太确定,如果是单线程,

2021-03-21 22:11:07 871

转载 Java 垃圾回收器的GC机制

导语 垃圾回收器—GC(Garbage Collection),它与“java面向编程”一样是java语言的特性之一;它与“ c/c++语言”最大区别是不用手动调用 free() 和 delete() 释放内存。GC 主要是处理 Java堆Heap ,也就是作用在 Java虚拟机 用于存放对象实例的内存区域,(Java堆又称为GC堆)。JVM能够完成内存分配和内存回收,虽然降低了开发难度,避免了像C/C++直接操作内存的危险。但也正因为太过于依赖JVM去完成内存管理,导致很多Java开发者不再关

2021-03-16 09:55:17 163

转载 java中,HashMap为什么每次扩容的倍数是2,而不是1.5或者2.5?

本文为转载文章,部分位置加入了个人对原文的理解原文:https://www.zhihu.com/question/422840340/answer/1494603694来源:知乎一、前言 二、HashCode为什么使用31作为乘数 1. 固定乘积31在这用到了 2. 来自stackoverflow的回答 3. Hash值碰撞概率统计 4. Hash值散列分布 三、HashMap 数据结构与算法 1. 写一个最简单的HashMap 2. 扰动函数 3. 初始..

2021-03-15 10:46:13 2115

转载 Android系统架构开篇

一、引言本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制。虽然Android系统非常庞大且错综复杂,需要具备全面的技术栈,但整体架构设计清晰。Android底层内核空间以Linux Kernel作为基石,上层用户空间由Native系统库、虚拟机运行环境、框架层组成,通过系统调用(Syscall)连通系统的内核空间与用户空间。对于用户空间主要采用C++和Java代码编写,通过JNI技术打通

2021-03-09 19:51:40 363

原创 Handler 的延时发送机制源码分析

Handler 的延时发送机制源码分析1.handler是如何发送一条消息的2.消息是如何接收的1.handler是如何发送一条消息的在使用handler 时一般都会调用到sendMessageDelayed函数public final boolean sendMessageDelayed(@NonNull Message msg, long delayMillis) { if (delayMillis < 0) { delayMillis = 0;

2021-03-07 23:47:40 265 1

原创 APP使用Usb被占用独占模式问题记录

问题描述: app中用到外接usb 设备,但是其他应用也是用到了usb,那么就存在一个问题,当别的应用先通过授权的方式获取到usb 权限,并且申请了独占模式,别的应用就无法再通过usb 传输数据,即使你已经通过了usb 获取到权限,并且可以正常的获取到UsbDevice 设备,并且通过openDevice获取到UsbDeviceConnection,也可以获取到设备id.但是就是无法读写数据.这是我的正常操作:UsbDevice device = (UsbDev...

2021-03-02 16:38:10 4304

原创 Https http原理及流程梳理

HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。密码学基础在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识。明文: 明文指的是未被加密过的原始数据。密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据

2021-03-02 16:10:53 216

原创 网络协议 TCP 流量控制

流量控制1.流量控制的目的2.流量控制的介绍2.1 正常情况下的流量控制2.2 存在数据丢失情况下的流量控制1.流量控制的目的流量控制是基于双方的数据发送接收速率匹配考虑的。其最终的目的就是让数据不要发的太快,以便接收端能够来得及接收,是一个链路两个端点的行为。2.流量控制的介绍TCP 的流量控制是采用滑窗机制协议进行的,tcp数据段是以字节为单位进行编号,但由于一个数据段只有一个tcp头部,所以tcp是以数据段为单位进行传输的,接收端通过tcp 头部来识别所接收端属于那个数据读段,一个数据段只要没

2021-01-31 17:46:07 716

原创 网络协议 TCP 滑动窗口

网络协议 TCP 滑动窗口1.滑动窗口机制的理解TCP是一种可靠的数据发送协议,但他的模式也使得大量的资源出行浪费,为了更好的利用硬件多核资源,同时又保证tcp发送的可靠性基础上,出现了滑窗机制,说白了就是将原本发送一条数据然后就等待付对方确认,改为发送多条再等待确认。1.滑动窗口机制的理解滑动窗口机制中“窗口”是指发送端和接收端的缓存空间大小,“滑动”的意思就是指缓存空间中存放的未处理帧数是变化,发送端在收到确认帧后会删除原本保存在缓存中的待重发帧,而接收端向网络层提交一个帧后也会删除原本保存在缓存

2021-01-31 16:13:04 200

原创 网络协议 TCP 如何保证数据的有序无误传输

如何保证数据的有序无误传输1.如何保证有序传输2.如何保证传输的无误性上一节讲了网络协议 TCP 数字编号和重传机制,其实已经变相的说明了这个问题。1.如何保证有序传输首先说,TCP 不同与UDP ,TCP 是有序的,那么是如何保证有序的,数据在发送后,可能经过不同路径,这样到达目的地时的顺序可能会与发送时不同,后发先到是一件很平常的事,网络层是不会保证数据的有序,TCP 是传输层协议,他实现了这样的一套逻辑,虽然网络层收到的消息顺序可能不一样,但是tcp 保证了提交到上层,应用层的消息,是有序的。

2021-01-24 15:14:28 4423

原创 网络协议 TCP 数字编号和重传机制

TCP 作为一种可靠的传输协议,在他的背后注定会有一套数据包的安全检查与重发确认,那么如何检查一包数据是否正确的被对方接收,这就需要为每个数据包,做标签,即数据编号,当发现数据包,丢失或者超时就会发起重传机制1. TCP 的数字编号作为一种确认机制的根本,编号起到了非常重要的作用。TCP 数据端以字节为单位对数据段中的“数据”部分进行一一编号,确保每个字节的数据都可以有序传送和接收。在前边我们介绍了tcp的数据包结构,并且介绍了序号和确认号,序号就是这里所说的数字编号,在数据包头中序号占32位,在t

2020-12-06 13:19:08 1747

原创 网络协议 TCP 四次挥手

有握手就有挥手,上篇讲了TCP的三次握手,这里就聊聊四次挥手过程。1.为什么要挥手TCP 是有连接的,当建立握手完成后,双方就建立连接,并且双方只能建立一个连接,这是因为对于TCP协议,要成功建立一个新的链接,需要保证新连接四个要素,组合体的唯一性:客户端的IP、客户端的port、服务器端的IP、服务器端的port。也就是说,服务器端的同一个IP和port,可以和同一个客户端的多个不同端口成功建立多个TCP链接(与多个不同的客户端当然也可以),只要保证【Server IP + Server Port +

2020-11-10 22:41:53 424

原创 网络协议 TCP的三次握手

TCP的有链接性决定了,它一切从连接开始那为啥要握手呢,不握手不行么,这样就可以有效隔离病毒了,…噢,好吧,我要全民免疫。。。,必须的握手,因为tcp区别于udp的最明显的就是他的有链接性,所以,在他俩通信的的过程中,必须先通过交换数据的方式建立链接,这样才能通信。客户端向服务端发送连接请求服务端收到请求后向客户端发送接受连接请求消息客户端收到服务端的接受连接消息后向服务端发送确认连接消息那三次握手客户端和服务端都干了什么,具体携带怎样的消息体和状态吗,这里就用到上节讲到的数据包结构TCP 数据

2020-11-08 11:49:30 1332

原创 网络协议 TCP 数据段 . 帧

#TCP数据段格式源端口 ,目的端口 :16位 2字节,发送端的端口号和接收端的端口号,和ip地址就可以完整的标识一个端点,也就构成了之前说过的,套接字socket.序号(seq):32位 4字节,用来标示计算机 A------>B 数据包序号,TCP连接中,传送的数据字节流中的每一个数据字节都要按顺序进行编号,在“数据段头”中标识的只是每个数据段的第一个数据字节的编号,这个要传送的字节流的起始序号必须在连接建立时设置。确认号(ack):32位 4字节,客户端和服务端都可发送, ACK =

2020-10-27 22:46:28 1745

原创 Android 如何使用亚马逊 S3实现文件的断点续传

1.集成android 开发环境implementation 'com.amazonaws:aws-android-sdk-s3:2.17.1'目前这个版本是最新的2.s3 服务端的相关数据,注册时都会给到.有两种方式private String accessKeyId;private String secretAccessKey;private String sessionToken;private String bucket;private String endpoin.

2020-10-27 22:10:50 3020 3

原创 网络协议 TCP/IP . TCP 协议基本介绍

网络协议 TCP/IP TCP 协议TCP/IP 的基本介绍TCP 的基本特性TCP 数据段格式TCP/IP 的基本介绍TCP/IP 协议簇,是在OSI/RM 基础上改进而来的,又称TCP/IP 协议参考模型,是针对使用TCP/IP 协议簇的广域计算机网络而开发的,可以说是OSI/RM 的改进版。 体系结构分为四层,应用层,传输层,网络层,网络接口层/链路层。而TCP 是整个TCP/IP的传输层协议的一种。TCP 的基本特性面向连接的,每次通信都要和对方先建立连接(三次握手),基于流的传输。

2020-10-19 20:59:22 521

原创 Hander的一点思考

1.hander 为啥就不会阻塞主线程2.hander looper messageQueue 和 Thread 啥关系3.一个线程中为啥可以有多个hander 消息是如何发送的4.当主线程意外推出,如何look 住程序做些我么的操作,原理是啥5. Looper.loop()后开启了一个无限循环,这样是不是很耗费资源,为啥设计成这样6.我们所说的主线程卡了,到底啥意思,ui 为啥不动了...

2020-07-27 21:17:19 262

原创 Realm 你所不知知道的用法

Realm 是一种可以跨平台 的数据库,速度也很快,至于普通的增删改查今天我就不多讲了.讲点大家可能不知道的1.数据库变动监听 这是什么gui,通俗讲就是对这个数据库表进行监听,当数据发生变化时监听器就会触发,和rxjava 契合,事实上用到了rxjava 可以对增删改查的任意状态进行监听,这个在开发中很有用,数据驱动页面. 我们先来看一组查询时的监听 realm.where(PhonePhotoRealm.class) .sor...

2020-06-18 09:35:54 781

原创 android 不root 手机如何查看realm 数据库和SharedPreferences

1.通过adb shell 进入 设备2.如果进不去,查看是否连接设备 adb devices3.输入 run-as 包名 这是会进入到 /data/data/ 包名下/4.输入 ls 查看 这是我的文件 数据库放在 files 下 SharedPreferences 放在shared_prefs 下5. 进入shared_prefs 先可以看到 项目所有的xml 文件 输入 cat xxx.xml 查看你的xml信息6....

2020-06-17 18:19:48 549

原创 Retrofit post 同步请求

现在网络请求基本都是Retrofit + rxjava + okHttp 这样一套组合。但是有时会有其他一些需求,比我同步post请求.定义接口异步基本都这样 @FormUrlEncoded @POST(Constants.ADD_LIBRARY_PHOTO) Observable<BaseResultBean<EmptyEntity>> addLibraryPhoto(@FieldMap Map<String, String> s.

2020-06-07 16:53:29 1548

原创 Collections.sort 实现对集合的排序

随便定义一个集合String[] str = new String[]{ "1", "9", "5", "6", "1", "4", "4","1", "9", "5", "6", "1", "4", "4",};然后使用: Collections.sort (list, new Comparator<String> () { @Override public int compare(String o...

2020-06-03 11:47:55 782

原创 android ios使用ffmpeg 你还在自己编译么

最近因为业务需要,要对上传的图片 和 视屏做压缩处理,我们都知道,凡事涉及到图形图像方面的,ffmpeg肯定是首选的,但是对于移动端ios ,android 都需要自己去编译,并且包的大小不是和好的控制,因为大多人如果不是做和ffmpeg 相关的的工作,连他如何顺利的编译都都搞不懂,更别提如何选择性的去编译包了. 给大家推荐一个很好用的ffmpeg 库,mobile-ffmpeg githup :https://github.com/tanersener/mobile-f...

2020-06-02 10:16:40 2136

原创 android 10 targetSdkVersion 29 真的不能在sd创建文件夹了?

android 10 对系统的文件系统做了很多优化,为了更好的保护用户隐私,同时对开发者来时说也是一种约束,不能再取得了,WRITE_EXTERNAL_STORAGE 权限后可以肆无忌惮的在用户的根目录下创建数据和文件。 今天我就遇到了一个问题,因为先前了解过10的文件系统 优化,但是时间久了忘记了,几天在我的10 的机子上测试,创建了一个项目,在创建目录的时候竟然不成功,权限完全没有问题,代码也没有问题,但是就是不成功,提示权限被拒绝,这是咋回事,这个纠结了半天时间,一直没有找到问题,...

2020-05-31 20:27:11 3305

原创 android Binder queryLocalInterface 本地与远程

在使用Binder 通信的时候有一个疑问,他是如何判断我们是否需要跨进程也就是返回的是本地的Binder 对象还是BinderProxy。带着问题,我们先来看下service 的绑定过程,我们通过ServiceConnection 接口监听绑定情况,大致是这样的 bindService(new Intent(this, MyService.class), new ServiceCo...

2020-05-05 21:45:44 3570 2

原创 android binder 机制概述

首先从概念上来说,什么是Binder,简单来说Binder是一种跨进程的通讯方式,从Android Framewok 来说,binder是serviceManager连接各种manger 和相应ManagerService 的桥梁,而binder 可以充当进程的桥梁,它是android ipc 机制中的一种。 直观的使用就是aidl,AIDL是Android中IPC(...

2020-05-03 17:03:14 1126

darkmodule.zip

针对android 10 暗黑模式的完整过程及遇到的问题,适配原理其实类似于我们适配横竖屏一样,我们创建一个暗黑模式文夹一般都带night 关键字,然后将相同名字的资源文件放到不同的文件夹下,系统会主动根据当前设备的模式去相应的文件夹找资源。

2020-05-01

Messenger跨进程通信.zip

Messenger 进程间通信的使用讲解demo,内部含两个module 客户端和服务端,页面包含多个测试组间,一看就懂,使用前先构建下。

2020-04-05

进程常驻探索 内含多个module

主要对可能出现进程常驻或者提高进程优先级的方案进程了实践,内有两个项目,主要从进程保活的多方面研究,基本实现了进程保活,但是不是百分百的

2019-01-04

android 跨进程通信aidl

项目包括两部分,客户端和服务端,分别介绍了两个客户端的通信实现,及潜在的问题,由浅入深,其中包括基本数据类型和自定义数据类型的接口格式。

2018-12-25

跨进程通信 广播

广播实现进程间的通信,项目需要两个都启动发送方发送,接收端反馈

2018-12-21

activity跨进程调用

两个项目,一个调用者一个别调用者,涉及到了intent 传值,接收,启动模式

2018-12-21

SwipeRefreshLayout下拉刷新+线程池多线程下载+RecyclerView

通过对SwipeRefreshLayout下拉刷新+线程池多线程下载+RecyclerView的整合实现下拉刷新,支持listview上拉加载,项目和灵活,可以根据自己需求进行改动

2016-11-26

FragmentDome,包括嵌套viewpager,Fragment多层嵌套

FragmentDome,完整的Dome,其包扩fragment的多层嵌套,并且使用viewpager嵌套多层fragment,并且实现活动和点击的完美效果,另外还添加滑动时的动画效果

2015-01-21

Source Tree 1.6.11

很好用的git客户端工具,版本是1.6.11的最新版的,并且还是中文的

2014-12-01

Android 4.0及以上版本 ProGuard 代码混淆

其中包括第三方jar混淆报错及解决办法,以及普通的代码混淆办法,相信能给你帮助

2014-02-21

接入支付详细操作使用文档

接入支付详细操作使用文档详细介绍接口使用接入及参数含义

2014-02-13

支付宝手机支付dome

下载后完成配置,即可快速接入详细明了,以后再也不用为支付担忧了

2014-02-13

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

TA关注的人

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