自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Get

竹杖芒鞋轻胜马,谁怕,一蓑烟雨任平生。

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

原创 3、RxJava2 & Retrofit2 封装实践 请求与响应的重度封装

请求前驱 HTTPServiceWrapper 响应后驱 HTTPCallbackWrapper

2017-04-26 17:29:57 1398

原创 MyBatisGenerator逆向工程根据数据库生成代码

The specified target project directory src\main\java does not exist生成代码报错。源码跟一下:org.mybatis.generator.api.MyBatisGenerator#generate(org.mybatis.generator.api.ProgressCallback, java.util.Set<java.lang.String>, java.util.Set<java.lang.String&gt.

2022-05-23 14:17:36 479

原创 Ubuntu 18.04编译android_8_1_0_r1遇到的一个疑难杂症target Generated: android.hardware.usb-V1.1-java

虚拟机:Parallels Destop 16本机:Mac 10.15.71、先说环境准备,因为PD是共享宿主机硬盘直接用的话他的硬盘格式跟Mac一样所以需要跟mac一样创建一个大小写敏感的镜像,然后将源码放进去就可以了。2、target Generated: android.hardware.usb-V1.1-java这个错在百度搜基本搜不出来,后面在google group搜到的具体原因:文件系统为未知格式,源码里没有做处理需要修改system/tools/hidl/Coordinator.

2021-09-02 10:15:37 234

原创 Android DexClassLoader加载Dex并调用

直接说操作File optDex = context.getDir("opt_dex", 0); File libPath = context.getDir("lib_path", 0); DexClassLoader dexClassLoader = new DexClassLoader(dexPath, optDex.getAbsolutePath(), libPath.getAbsolutePath(), MainActivity.this.g

2020-10-28 13:11:16 458

原创 AIDL你需要注意什么?

为了方便复制aidl文件,我们总是想把aidl文件和bean文件放到一个文件夹里,但是路径会导致一个问题 错误: 找不到符号 符号: 类 Book 位置: 程序包 com.shencheng.serveraidl 应为Book.java没有在java文件夹下,所以没办法找到。正确的方式如下。将java bean放到java文件夹下,而且必须保证报名和aidl的包名一致!...

2019-03-25 10:37:21 374

原创 多线程并发原理,解决线程安全问题

线程安全问题,归根到底一句话:在多线程之间修改共享数据引起的。解决线程安全问题 :关键词:修改,共享1、不共享没变量 (无状态类 (不做值的修改,只有方法))变量不可变 (Akka)栈封闭 (方法内部定义变量)2、共享但加锁CAS操作(乐观锁):操作时先判断下,拿到的数据是否跟主内存的数据是否相同,如不相同则取到主内存的值再操作。乐观锁: 乐观的认为,这个数值只有我自己...

2019-03-20 16:19:49 1594

原创 Mac无法识别硬盘

无法识别硬盘解决方法1、diskutil list 列出硬盘信息Lwang@localhost  ~  diskutil list/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_pa...

2019-01-21 14:09:11 9934 3

原创 android 代码 install apk 注意点

安装不多说了,一搜一大堆。注意点:千万记得加权限!!!&lt;uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /&gt;好多博主都没有提,沮丧。...

2018-11-09 15:44:04 423

原创 Retrofit && RxJava php android 交互时Json to list个别item为null时处理

标题一头雾水,直接上json吧,有需要的同学一眼就懂{ &quot;data&quot;: { &quot;player&quot;: [ [], [], [], [], [], { &quot;id&quot;: &quot;1024&quot;, &quot;name&quot;: &quot;xxx&quot;,

2018-10-30 16:00:23 295

原创 Android View跟随手指拖动

@Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getRawX(); int y = (int) event.getRawY(); switch (event.getAction()) { case M...

2018-05-14 15:06:42 1131 2

原创 Canvas实践,drawXxx坐标记忆

以前也会用Canvas,但是每次用到的时候还得去查坐标含义,比如drawArc的left、top、right、bottom,startAngle,sweepAngle,重新复习一遍,灵魂画手方式记录心得~Canvas坐标系Canvas坐标系是视图坐标系,默认原点为parent的left,top,但是Canvas中的translation方法可以指定原点 Canvas中缩放,反...

2018-04-17 13:03:58 1047

原创 Android View坐标系

Android有两种坐标系。Android坐标系Android视图坐标系1、坐标解释Android 坐标系:以屏幕左上角为原点。MotionEvent.getRawX()、MotionEvent.getRawY()等获取绝对坐标的方法则属于Android坐标系。Android视图坐标系:以父View左上角为原点。 其中view.getLeft()、view.getR...

2018-04-16 14:45:51 295

原创 [艺术探索]第二章 IPC机制(1)

IPC简介 IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。进程和线程 线程是CPU调度的最小单元,同时线程是一种有限的系统资源。进程一般指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包含与被包含关系。Android中的多进程模式...

2018-03-16 14:51:05 158

原创 [艺术探索]第一章Activity的生命周期和启动模式

典型情况下的生命周期分析1). onCreate:Activity正在创建。生命周期的第一个方法,在这个方法中可以做一些初始化工作,比如调用setContentView去加载界面布局资源,初始化Activity所需数据等。2).onRestart: 表示Activity正在重新启动。当当前Activity从不可见状态到可见状态时,onRestart方法会被调用。这种情形一般是用户行为导致...

2018-03-15 16:27:00 148

原创 初探JNI

首先要求: Android Studio 2.2 或更高版本与 Android Plugin for Gradle 版本 2.2.0 或更高版本下载NDK和构建工具Android 原生开发工具包 (NDK):这套工具集允许您为 Android 使用 C 和 C++ 代码,并提供众多平台库,让您可以管理原生 Activity 和访问物理设备组件,例如传感器和触摸输入。CMake:一

2018-01-17 13:11:50 232

原创 RecyclerView 自适应高度

网上找了三四种方法都效果都不怎么理想。 这个方法亲测可行(LinearLayoutManager Vertical,其他的没试)在Adapter的`onBindViewHolder`方法种使用。ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams(); layoutParams.height =

2017-12-19 17:13:29 2464

原创 解决自定义View触发ACTION_CANCEL

国外网站对于ACTION_CANCEL的解释为You receive this when a parent takes possession of the motion, for example when the user has dragged enough across a list view or scroll view that it will start scrolling instead

2017-09-12 17:47:03 1851

原创 Java实现 数组实现循环队列

public class CQueue { /** * 1、循环队列需要将 strings[size - 1] 与 strings[0] 连接起来。 * 2、队首 前 需要空出一个位置作为标识位,所以队首队尾初始值为1,统一对待,以免其他操作发生混乱 * 3、入队操作队尾,出队操作队首,互不相干 */ public int size = 11;

2017-05-12 18:27:20 516

原创 Java实现 链表实现队列

链表实现队列类:public class QueueLink { public Node head; private int size = 0; public QueueLink() { head = new Node(); } public void inQueue(String name) { Node q = head;

2017-05-12 14:38:39 449

原创 Java实现 数组实现队列

数组实现队列有两个缺点 1、会出现”假溢出” 2、低位空间无法重复利用(出队之后的空间)队列队尾进 队首出 FIFO(First In First Out)数组队列类:public class QueueArrays { /** * 队尾插入 * 队首取出 */ public int front = -1,real = -1; pu

2017-05-12 14:35:26 1079 1

原创 Java实现 双链表互换任意两个节点

1、确定两个节点的先后顺序 2、next、prev互相交换顺序以及将换向前方的节点与之前的节点对接。(1.prev.next = 2) 3、判断是否相邻链表类:public class SLink { public SNode head; public SLink() { this.head = new SNode(); } pub

2017-05-11 16:29:21 1476

原创 Java实现 双链表

双链表较之单链表多了前趋和后继,但是tail.next都为null节点类:public class DNode { String name; DNode prev; DNode next; public DNode(String name, DNode prev, DNode next) { this.name = name; this

2017-05-10 17:52:31 285

原创 Java实现 循环链表

循环链表和单向链表的不同之处在于 : 单向链表tail.next指向null; 而循环链表tail.next指向head;循环链表类:public class CLink { public Node head; public CLink() { this.head = new Node(); head.next = head; }

2017-05-10 15:30:01 370

原创 Java实现 单链表

链表的循环很重要,基本贯穿所有操作。 1、链表的移动 2、链表尾部特征单链表类:public class Link { public Node head; public Link() { head = new Node(); } /** * 增加节点 * @param name */ public voi

2017-05-10 15:25:26 426

原创 2、RxJava2 & Retrofit2 封装实践 初始化

RxJava2&Retrofit2的基本实现RxJava2 & Retrofit2 & Rxlifecycle依赖 compile 'com.squareup.okhttp3:okhttp:3.7.0' compile 'com.squareup.retrofit2:retrofit:2.2.0' compile 'com.squareup.retrofit2:converte

2017-04-26 14:22:00 982

原创 1、RxJava2 & Retrofit2封装实践 简介

去年自己封装的,之后一直加班,终于闲下来,记录下自己的收获。 初步介绍自己的封装层次,之后几篇步步深入。 如果有改进的地方希望可以联系我,帮助我改进。看图说话不太会画这种图,先就这里出现的两个包装类和HTTPCENTER说一下。HTTPCENTERHTTP相关的数据中心,将HTTP相关做一个整合。 譬如,我想得到任意一个跟HTTP有关联的对象,第一时间就想到HTTPCENTER。R

2017-04-26 10:54:18 275

原创 第9章 基于HTTP的功能追加协议

HTTP协议的瓶颈 为了让用户及时看到最新的消息,服务端一有更新就需要直接反馈到客户端,若想实现,那么HTTP标准则会成为瓶颈!

2017-04-20 16:37:53 266

转载 知识点170418

一般情况下第一轮都是基础面试,需要扎实的基础最常用的Android 基础知识Java 基础知识了解一些 常用东西的原理,例如:handler, tHRead 等项目中的技术点第二轮的时候需要了解更深层次的东西Android 事件分发机制原理Android 绘图机制原理WindowManager 的相关知识进程间传输方式Java 内存管理机制一些常用的 list,map 原理,以

2017-04-18 10:47:06 206

原创 第8章 确认访问用户身份的验证

HTTP使用的认证方式 - BASIC 认证(基本认证) - DIGEST 认证 (摘要认证) - SSL 客户端认证 - FormBase 认证 (基于表单认证)BASIC 认证 基本认证是从HTTP/1.0就存在的认证方式1、当请求的资源需要进行BASIC认证时,服务端会随401状态码返回带WWW-Authenticate头部字段的报文。该头部字段内含认证方式(B

2017-04-17 15:43:57 508

原创 As签名打包出现not found for signing config 'externalOverride'.

Error:Execution failed for task ‘:app:validateSigningRelease’. Keystore file /Users/xxx/Documents/work/xxx/xxx.jks not found for signing config ‘externalOverride’.打包出现此问题,是因为jks路径错误,重新选择即可。

2017-04-12 11:01:15 27661 9

原创 第7章 确保Web安全的HTTPS (2)HTTP + 加密 + 认证 + 完整性保护 = HTTPS

HTTP + 加密 + 认证 + 完整性保护 = HTTPSHTTPS是身披外壳的HTTPHTTPS并不是一种协议。 HTTPS协议有两种组成: HTTP + SSL / TSL,也就是HTTP上层又加入了一层加密信息的模块。HTTPS的通信过程图很丑,但是还好,理解了自己独立画的。 推荐图解 HTTPS 通信过程 图很棒,也通俗易懂。1、发送请求2、服务器配置服务器的配置,实用HTTPS必

2017-04-11 15:44:52 614

原创 第7章 确保Web安全的HTTPS(1) HTTP的缺点

在HTTP协议中可能存在信息窃听或身份伪装等安全问题,使用HTTPS通信机制可以有效的防止这些问题。1、HTTP的缺点通信使用明文(不加密),内容可能会被窃听。不验证对方身份,可能会遭遇伪装。无法验证报文完整行,所以可能内容被篡改。1.1、通信使用明文(不加密),内容可能会被窃听TCP/IP是可能被窃听的网络由于TCP/IP协议族工作机制,通信内容在所有的通信线路上都可能遭到窥视。即使经过

2017-04-11 14:45:21 475

原创 Cache-Concrol

指令 参数 说明 缓存请求指令 no-cache 无 强制向源服务器再次验证

2017-04-07 15:58:14 481

原创 第6章 HTTP 头部 通用头部字段

Cache-controlConnectionDatePragmaTrailerTransfer-EncodingUpgradeViaWarning

2017-04-07 15:31:31 1272

原创 第6章 HTTP头部(2) End-to-end、Hop-by-hop

End-to-end 端到端头部 此类头部字段会转发给 请求/响应 的最终接收目标。 必须保存在由缓存生成的响应头部。 必须被转发。Hop-by-hop 逐跳首部 此类头部字段只对单次转发有效。会因为转发给缓存/代理服务器而失效。

2017-04-06 17:16:56 7142

原创 Android Studio for Mac 点击run无反应,log出现Unable to locate adb

As更新了版本,之后出现如题情况,发现没有装对应版本版本的platform-toolsSdkManager -> sdktool 下载最新版本 platform-tools 即可

2017-03-29 14:02:25 2979

原创 第6章 HTTP头部(1)

HTTP头部字段是构成HTTP报文的主要因素之一。 使用头部字段是为了给客户端和服务端提供报文的主体大小,使用的语言,创建的日期等1. HTTP头部字段结构头部字段的结构为key-vlaue的结构。 头部字段名 : 字段值 例如 Content-Length: 139字段值对应单个头部字段名可以有多个值 头部字段名 : 字段值1,字段值2 … 例如 Keep-Alive

2017-03-24 10:45:39 420

原创 第5章 与HTTP协作的Web服务器、缓存代理服务器、客户端缓存

HTTP/1.1 规范允许一个 HTTP 服务器搭建多个站点。1. 用单台虚拟主机实现多域名HTTP/1.1 允许一个 HTTP 服务器搭建多个站点,势必会有一个 IP 对应多个域名的情况,那么 DNS 解析出IP之后HTTP怎么来区分访问的是哪个站点呢?发送HTTP请求报文时,必须在头部 Host 字段内完整的指定主机名或者域名的 URI 2.通信数据转发程序:代理、网关、隧道1) 代理 代

2017-03-22 11:23:28 1282

原创 第4章 返回结果的HTTP状态码 HTTP协议常用的状态码

状态码告知从服务端返回来的请求结果1.状态码种类 类别 原因短语 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求成功

2017-03-20 17:49:18 428

原创 第3章 HTTP报文内的HTTP信息(2) 总结

什么是报文?报文的结构?(着重于头部)什么是报文主体和实体主体?它们的差异?什么是内容编码?列举常用的内容编码。分割发送的分块传送编码发送多种数据的集合内容协商的头部字段,内容协商的三种类型。

2017-03-20 16:52:49 296

空空如也

空空如也

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

TA关注的人

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