自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guojiayuan002的博客

博主目前专注Android开发,欢迎评论交流

  • 博客(36)
  • 收藏
  • 关注

原创 eth-geth搭建私链问题记录

解决: 先启动geth ,输入geth ,日志中会打印geth.ipc 文件的地址 我的是 /home/xxxx/.ethereum/geth.ipc,所以在启动私链时,指定ipc文件位置;我的出错原因 在data0 目录下没有 geth.ipc文件;这里端口冲突也修改了一下端口。

2023-04-29 20:35:45 232

原创 Android Studio 打包jar makeJar

Android Studio 打包jar makeJar在模块的 build.gradle dependencies{}后面设置task clearJar(type: Delete) { // 先删除原来的jar delete 'build/libs/Test.jar'}//指定生成jar包的来源和存放位置以及名称task makeJar(type: Jar) { //指定生成的jar名 baseName 'Test' //从哪里打包class文件

2021-07-20 20:14:39 776

原创 Android Studio CMakeList编译JNI

1. 准备工作下载NDK,CMake、LLDB工具准备工作注意两个坑下载NDK后可能会报缺少 mips64el-linux-android-4.9 文件,需要去官网重新下载一份android-ndk-r16b版本NDK,解压后 将里面的上述文件copy到你的NDK文件夹里,如下图:下载Cmake记得选择3.6版本,目前博主AS3.0.1,下载3.10会报错,记得下面NDK也需要勾选,不...

2020-03-27 10:45:54 798

原创 JNA 参数映射关系

1 使用点击跳转 JNA地址jna.jar 下载下载jna.jar 导入,并导入so库定义JNA 接口,统一将so库function 封装到接口中public interface IJnaLibrary extends Library { public static final String JNA_LIBRARY_NAME = "so file name"; pub...

2020-03-11 20:00:52 1240

原创 Https如何保证了数据的安全?

文章主要分析和讲解突出握手的过程1. 一种不安全通信案例http明文传输和下方案例中数据传输都是不安全的。2. 数字证书2.1 为什么要有数字证书?对于请求方来说,它怎么能确定它所得到的公钥一定是从目标主机那里发布的,而且没有篡改过呢?亦或这请求的目标主机本身就从事窃取用户信息的不正当行为呢?这时候,我们需要有一个权威的值得信赖的第三方机构(一般由政府审核并授权的机构)来统一对外发放主...

2020-01-17 17:47:09 840

原创 EventBus 源码解析

**1. register```EventBus.getDefault().register(this);```在register 中主要获取 在Activity中 定义的EventBus 方法,并封装成SubscriberMethod 保存在一个集合中,主要 方法 findSubscriberMethods public void register(Object subs...

2020-01-11 14:57:16 128

原创 力扣 347 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

Java 实现/** * 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 * 示例 1: * 输入: nums = [1,1,1,2,2,3], k = 2 * 输出: [1,2] * 示例 2: * 输入: nums = [1], k = 1 * 输出: [1] * 说明: * 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 *...

2020-01-05 11:44:27 1451 1

原创 Android 非常见Crash

NoClassDefFoundErrorjava.lang.NoClassDefFoundError: Failed resolution of当低版本系统运行高版本API时,即使在方法添加了@RequiresApi,代码还是会往下执行,执行到低版本手机中不存在的方法时,会报错java.lang.NoClassDefFoundError: Failed resolution of....

2019-12-27 16:15:49 78

原创 Okhttp和五大拦截器

1.1. OkHttp的特点是基于建造者模式(将一个复杂对象的构建与它的表示分离,用于属性参数很多时)链式调用,每一个方法的返回值类型都是当前类的对象1.2. OkHttp的优点支持HTTP2/SPDY(SPDY是Google开发的基于TCP的传输层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。)Socket自动选择最好路线,并支持自动重连,拥有自动维护的sock...

2019-08-05 16:11:47 3823 1

原创 Android IPC 中抛出的异常 TransactionTooLargeException

1. 背景项目中用到 aidl 通信,在客户端使用aidl 向 服务端 无限发送数据通信时 会抛出TransactionTooLargeExceptionProcess: com.snbc.cabinetclient, PID: 22854 io.reactivex.exceptions.OnErrorNotImplementedException at io.reac...

2019-07-11 14:58:53 361

原创 Android应用程序(activity)启动过程(三)API28

文章基于API28本的activity启动过程,和26版本的启动过程改动不大,主要是在realStartActivityLocked方法之后,修改了activity的调用,读本文之前建议先了解之前版本activity的调用过程,文章将直接讲解主要不同之处。Android应用程序(activity)启动过程(一)Android应用程序(activity)启动过程(二)对接启动过程(二) ste...

2019-05-15 11:44:59 639

原创 Eclipse项目 迁移到Android Studio发生的问题

问题Execution failed for task ':app:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details解决:排查所有的.9.p...

2019-05-05 15:23:26 126

原创 解决 GreenDao 多线程查询引发的OOM异常

1、java.lang.OutOfMemoryError: Failed to allocate a 56 byte allocation with 32 free bytes and 32B until OOM2、java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError;...

2019-04-08 11:28:58 2759

原创 Android Glide4.0源码解析 读书笔记

文章基于 Glide4.7.1;只分析主要分析主要流程,包括如何绑定生命周期,哪里请求图片资源,解析资源三大块大纲:Glide.with(context).load(url).into(imageView)1.首先 Glide.with() 有很多重载方法,可以接受Context,Activity,FragmentActivity,Fragment甚至是View不同的类型,调用了getRetr...

2019-01-24 10:52:19 235

原创 Android 静默安装和自启动

需求:更新APP时,需要更新完自动启动APP的MainActivity(主页面)。注意:静默安装需要Root权限。自定义一个类 AutoInstallRestartManager //静默安装 public static void installSilent(String apkPath, Context context) { LogUtil.i(TAG, "开始静...

2018-11-08 15:21:26 996

原创 System.arraycopy();参数说明

1.demo,将lengthByte中的数据copy到mPlayText中 arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:lengthByte 源数组 srcPos:源数组中起始copy的position dest:目的地 数组 destPos:目的地数组中放置的位置 po...

2018-10-29 15:06:20 1324

原创 Android应用程序(activity)启动过程(二)

继 Android应用程序(activity)启动过程(一),主要讲新进程和activity如何启动从 第14步骤 调用 ActivityStack resumeTopActivityInnerLocked方法中最后面有一个方法startSpecificActivityLocked()。 if (!next.hasBeenLaunched) { next.h...

2018-10-17 15:25:24 261

原创 Android应用程序(activity)启动过程(一)

参考文章 Android应用程序启动过程源代码分析从桌面启动 Launcher.startActivitySafely ——> startActivity() ——> startActivityForResult()在 startActivityForResult()方法中调用 Instrumentation类中的 public

2018-10-08 18:01:23 582

原创 Android面试总结(高频)问题

Activity的生命周期,屏幕切换时走了哪些生命周期Fragment生命周期、使用Fragment中遇到的坑事件分发机制自定义View、VIewGroup区别Activity启动流程(较难)TCP和UDP区别https和https区别handler原理(必会)okhttp原理(必会)Retrofit、Rxjava、EventBus源码(有用过必会)11.Recyclevie...

2018-09-22 11:27:09 692 1

原创 Android CountDownLatch 实现线程同步

CountDownLatch complteLatch = new CountDownLatch(1);主要方法 complteLatch.await();complteLatch.await(timeout, unit); 多长时间自动唤醒complteLatch.countDown(); // 唤醒await用法:在第一个子线程A中,new Thread B,然后 使用complt...

2018-09-19 17:52:40 630

原创 Android AIDL通信,及其Binder通讯原理

1.为什么试用aidl,而不是直接通信?一个进程空间分为:用户态和内核态,即把进程内用户和内核隔离开来进程之间,由于Android系统为每个进程分配了一个独立的虚拟机,用户空间和内核空间的数据不可交互Binder作为进程间的介质,充当了中介,使得进程间的内核态可以通过Binder进行数据交互2.通信过程首先编写以“aidl”结尾的aidl文件,编译生成同名的java文件,在a...

2018-09-17 14:49:27 382

原创 Win10下 Java环境变量配置

Win10下 Java环境变量配置

2018-07-27 14:19:03 184

原创 百万量级整数集合,只有两个数字相同,要求写出这个数字

//1.装入set集合去除重复方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示两次,11多次)进行,共需内存内存,还可以接受。然后扫描这2百万个整数,查看Bitmap中相对应位,如果是00变01,01变10,10变11。所描完事后,查看bitmap,把对应位是01的整数输出即可。方案2:利用hash(x)%100,进行划分100个小区域的方法。然...

2018-07-23 15:08:20 595

原创 Android面试经典题——如何捕获(处理)未捕获的异常

直接上代码1.自定义一个UncaughtExceptionHandlerpublic class CrashHandler implements Thread.UncaughtExceptionHandler { private static final String TAG = "NoCrashHandler"; private static CrashHandler s...

2018-07-20 17:09:37 1185

原创 Retrofit+RxJava上传Map类型的表单、文件

/** * 工单录入 */ @Multipart @POST("your url") Observable<JavaBean> addOrder(@PartMap HashMap<String, String> body);

2018-07-10 17:24:08 2215

原创 try-catch-finally-return的执行先后顺序问题

本文记录两种比较绕的情况 前提:不管有没有异常,finally块中代码都会执行 情况1. catch 和 finally 中都有return 的情况,执行步骤 1、3、5、6(但是步骤五没有看到Log 工具AS 段点调试)返回值是2. - 不要在finally 中 retrun因为在 finally 中是释放资源的,这么做就是在犯罪。 - 猜测了一下,是不是在finally 中所有...

2018-06-26 17:58:51 1168

原创 SparseArray 源码解析及hashMap性能对比

SparseArray数据结构:private int[] mKeys; // int 数组 保存 keyprivate Object[] mValues; // Object 数组 存valueprivate int mSize; // SparseArray 的长度 SparseArray sparseArray = new SparseArray<>(); s...

2018-05-29 16:17:49 273

原创 Android 动画有哪些类,它们的特点和区别是什么

Drawable Animation也就是所谓的帧动画,Frame动画。指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果。View Animation视图动画,也就是所谓补间动画,Tween动画。指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。注意:只是在视图层...

2018-05-28 10:44:20 1825

原创 2020 Android 面试题

Android 中的dp、px、dip的先关概念Android 四大组件有哪些、各自的作用Activity的生命周期以及四种启动模式,在那些情况下使用概述一下Android 的时间分发机制Android 中的几种引用,以及区别Handler、Looper、Messge之间的关系Listview缓存机制、常见的ListView的优化ListView和RecycleView的区别,谈谈...

2018-05-26 08:47:39 1177

原创 Android 线程池有哪些?之间的区别?为什么使用线程池

四种线程池、区别1. newCachedThreadPool() 缓存型池子,先查看池中有没有以前建立的线程,如果有,就reuse.如果没有,就建一个新的线程加入池中。能reuse的线程,必须是timeout IDLE内的池中线程,缺省timeout是60s,超过这个IDLE时长,线程实例将被终止及移出池。缓存型池子通常用于执行一些生存期很短的异步型任务 。2. newFixedThr...

2018-05-24 10:35:35 258

原创 AS3.0 组件化开发中 butterknife R2绑定控件引发的错误

1.背景介绍:由于组件化开发要分多个moudle模块,通用的部分经常会创建一个moudle_base 提高复用性,在moudle_base 中集成butterknife 由于目前 butterknife对AS3.0兼容不太好,所以需要在项目的gradle下采用 8.4.0的版本就可以了 classpath 'com.jakewharton:butterknife-gradle-plugin:8....

2018-05-14 16:06:28 3291

原创 Java 线程安全的单例写法及volatile、原子性、可见性

开发中常用到的单例设计,自己总结一下 单例设计模式分为饿汉式和懒汉式,主要作用是:保证类在内存中对象的唯一性(只有一个对象) 饿汉式是空间换时间;懒汉式是时间换空间1、饿汉式/** * 饿汉式,线程安全 但效率比较低 * 1.私有构造 * 2.创建本类对象 * 3.对外提供公共的访问方法 */ public class Person{ // 定义一个私...

2018-04-20 22:45:51 545

原创 Java 算法——一百个数围成一圈并数数,数到三就把数拿走,求最后剩下的数

/** * 约瑟夫环 */ private void test() { int x, all = 100, i = 0, count = 0, exit = 0; //i 循环变量,count 计数,exit退出队列人数 int[] arr = new int[100]; for (x = 0; x < al...

2018-04-20 11:04:44 1322

原创 【android】项目application全局唯一Handler(接口回调实现)

最近Handler玩嗨了,突发奇想搞一个全局的handler,苦思冥想3三小时,终于搞定!先在Application中创建Handler和用于回调的接口,并且打印这个接口的地址值(后面测试用)//Application.classprivate static Handler mHandler = new Handler(Looper.getMainLooper()) { @Ove...

2018-04-13 19:42:40 5104 2

原创 【Android】java 线程中的run和start神奇使用

1.首先声明 一个super简单的handlerprivate Handler mHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { super.handleMessage(msg);...

2018-04-12 21:07:34 873

转载 android 网络请求url中有特殊字符解决方法

经常在get网络请求中有特殊字符,系统编码 自动转译这些特殊字符有些字符在URL中具有特殊含义,基本编码规则如下:特殊含义 十六进制值1.+ 表示空格(在 URL 中不能使用空格) %202./ 分隔目录和子目录 %2F3.? 分隔实际的 URL 和参数 %3F4.% 指定特殊字符 %255.# 表示书签 %236.& URL 中指定的参数间的分隔符 %26java中URL 的编码和解码函...

2018-04-11 10:30:36 5240

空空如也

空空如也

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

TA关注的人

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