- 博客(51)
- 资源 (5)
- 收藏
- 关注
原创 dubboJackson序列化统一配置
import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.JsonEncoding;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.*;import com.fasterx.
2022-05-24 19:39:20
451
转载 Activity启动流程
转自:Android之9.0Activity启动流程(二)_jsyjst的博客-优快云博客第一步:Zygote新线程并执行ActivityThread的main方法第二步:绑定Application第三步:AMS启动activity第四步:Activity内部生命周期...
2022-01-20 19:18:54
154
原创 ListView 缓存(从别处抄来的,感觉有用,找不到源头)
目录1、View的Transient状态2、RecycleBin3、obtainView4、getView的调用5、GridView的onMeasure6、ListView的onMeasure在Android开发中我们经常使用ListView和GridView,它们都有一套缓存机制,通过复用防止view的不停创建。ListView和GridView都是AbsListView的子类,使用其内部类RecycleBin来进行view的缓存。1、View的Transient状态
2021-12-31 15:17:59
488
原创 ListView 二级缓存
ScrapView+ActiveView从上到下开始填充ViewGroup:/** * Fills the list from top to bottom, starting with mFirstPosition * * @param nextTop The location where the top of the first item should be * drawn * * @return The view that is currently selected
2021-10-20 19:34:25
279
转载 ReactNative 通信机制(Android)
https://zhuanlan.zhihu.com/p/45837390先线上膝盖,网络上讲解最清晰的,没有之一,怕被删,故做收藏,另有作者专栏https://www.zhihu.com/column/react-native-tips在介绍完RN的背景、实践以及整体架构后,下面我们来聊一聊RN Android端的源码。本文首先会介绍RN在Android端的初始化流程,紧接着介绍JSBundle的加载流程以及NativeModules的初始化过程,最后会介绍三端通信。一、Android端的初始化.
2021-08-12 19:21:53
1013
原创 React Native零碎小知识
RN命令npm cache clean --forcereact-native init AwesomeProjectcd AwesomeProjectreact-native run-androidreact-native start --port 9999//在新端口启动服务React Native 框架生命周期 http://www.race604.com/react-native-component-lifecycle/ 方法..
2021-08-05 16:40:11
187
转载 Android Binder设计与实现 - 设计篇
转自https://blog.youkuaiyun.com/universus/article/details/6211589,神级博客,转载以防丢失关键词Binder Android IPC Linux内核驱动摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信...
2020-10-31 19:21:00
375
原创 慎用Java8-parallelStream
Java8中新增的parallelStream( )是利用ForkJoin机制实现的并行流(并行不是并发),ForkJon原理如下图:parallelStream( )默认开启机器CPU核数(cpuCoreNum)个并行线程,cpuCoreNum可通过下面代码获取:Runtime.getRuntime().availableProcessors();只要parallelStream( )数据量超过cpuCoreNum,默认就会开启cpuCoreNum个并行线程;可通过下面代码设置默认的线程
2020-09-04 16:48:22
566
原创 PageHelper分页问题
PageHelper在使用过程中,偶然给不需要的方法添加limit的问题,是由于在PageHelper.startPage()和select语句之间抛出异常,导致分页信息滞留在当前线程的ThreadLocal中,被下次调用本线程的其他方法消费掉,进而出现其他方法异常;PageHelper 只是在查询方法异常时清除了ThreadLocal的分页信息;...
2020-09-04 16:23:28
374
原创 Android屏幕刷新机制
CPU、GPU 跟 Display是可以并行工作的。通常的APP代码只是控制CPU的计算工作,而底层在每一次屏幕刷新信号来的时候都会去切换这一帧的画面,这点我们是控制不了的,是底层的工作机制。之所以要讲这点,是因为,当我们的 app 界面没有必要再刷新时(比如用户不操作了,当前界面也没动画),这个时候,我们 app 是接收不到屏幕刷新信号的,所以也就不会让 CPU 去计算下一帧画面数据,但是底层仍然会以固定的频率来切换每一帧的画面,只是它后面切换的每一帧画面都一样,所以给我们的感觉就是屏幕没刷新。所以,
2020-08-18 18:10:56
326
原创 spring-dubbo 异常统一捕获
import com.sf.framework.exceptions.BaseServiceException;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org....
2019-07-09 17:43:16
1006
原创 VUE笔记
5.如果需要在H5页面打断点,需要用到Chrome://inspect (如果白屏,可能需要梯子才能看到待调试的页面)6.开启webView调试的方法,开启之后,才能在Chrome里调试,@Overrideprotected void onCreate(Bundle savedInstanceState) { //Enabling web debugging if (Buil...
2019-04-26 15:25:41
155
原创 sql语句执行顺序
from *tables*where *predicae1* 对表筛选,选取需要的行,不能包含聚合函数group by *columns* 对行分组having *predicae1*对分组使用聚合函数select *columns* 选择需要的列order by *columns* 按列排序limit *start*, *offset*; 截取...
2019-04-26 15:22:00
125
转载 【转】docker 基本原理及快速入门
什么是dockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc...
2019-02-27 16:55:49
159
原创 VueRouter的简单使用
1. 有一个HTML文件里的DOM元素(的id)作为vue实例挂载的入口;2.创建VueRouter文件;import Vue from 'vue';import VueRouter from 'vue-router';//import VueRouterimport HelloWorld from '../components/HelloWorld';import User fr...
2018-11-25 14:14:52
168
原创 React Native 裁剪图片,干货!
import {ImageEditor} from "react-native";var resolveAssetSource = require('resolveAssetSource');console.log('Stamp==>componentDidMount')// 关键系统函数,读取资源图片并返回URI、图片宽高信息const source = resolveAss...
2018-09-05 14:37:25
2919
2
转载 react-native setNativeProps 详解
转自 react-native setNativeProps 详解在React-Native里面,如果要改变组件的样式可以通过state 或者 props来做到。但有些时候由于性能瓶颈,不得不放弃通过触发render的方式来改样式,而是通过setNativeProps 来直接更改原生组件的样式属性 来达到相同的效果。如下图:header渐变效果上图中的header渐变和搜索框出现都是直通过setN...
2018-06-06 17:33:20
1618
转载 React Native 触摸事件处理详解
转自 点击打开链接触控是移动设备的核心功能,也移动应用交互的基础,Android 和 iOS 各自都有完善的触摸事件处理机制。React Native(以下简称 RN)提供了一套统一的处理方式,能够方便的处理界面中组件的触摸事件、用户手势等。本文尝试介绍 RN 中触摸事件处理。1. RN 基本触摸组件RN 的组件除了 Text,其他组件默认是不支持点击事件,也不能响应基本触摸事件,所以 RN 中提...
2018-05-30 18:01:21
396
原创 React Native 第一坑(持续更新)
环境搭建: https://reactnative.cn/docs/0.51/getting-started.html1. 在同一个js文件中,class定义的位置必须在引用之前,否则就会造成找不到class的问题2. this的执行时可变的,但在箭头函数中是固定的,箭头函数体内的this指向定义时所在的对象,不是使用时所在的对象。3. 尽量多用this指针,可以代替bind函数;...
2018-04-14 21:13:26
388
原创 flutter 环境搭建
教程:flutter官网环境:win7+Android studio要点:科学上网创建flutter工程后运行,遇到的bugE:\flutter_workspace\flutter_app>flutter run -v[ +37 ms] [D:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}[ +56 ms] Exit code ...
2018-03-05 16:30:58
6127
原创 javax.net.ssl.SSLException: Read error: ssl=0xdeae5100: I/O error during system call, Connection res
bug记录 :javax.net.ssl.SSLException: Read error: ssl=0xdeae5100: I/O error during system call, Connection reset by peer原因:参数包含不合法的字符串被服务器WAF检测到之后,链接直接中断。解决过程:通过wireshark抓包,可以看到中断的时机。
2017-11-09 15:44:15
15067
原创 Activity启动模式
standard: 每次启动都会创建singleTop:跟 Standard 类似,当Activity在栈顶时复用singleTask:一个栈只保持一个实例,并且会在重新启动Activity时清掉栈顶其它ActivitysingleInstance: 独占一个任务栈singleTask与singleInstance可以保证一个主Activity,但这两模式存在一个问题:从主
2017-10-17 11:05:15
373
原创 如果APP已经启动,在新的task里重新启动APP,不影响原有的task。。。
如果APP已经启动,在新的task里重新启动APP,不影响原有的task,适用于SDK调用PackageManager packageManager = mContext.getPackageManager();Intent intent = packageManager.getLaunchIntentForPackage("com.xxxx");intent.setFlags(Int
2017-06-22 22:14:15
347
原创 Android热修复框架 Tinker 接入
1. 编译demoTinker GitHub: https://github.com/Tencent/tinker Q1. clone之后,仅仅将tinker-sample-android 工程导入Android Studio,如果将整个工程导入的话,否则死活编译不过Q2. 编译命令 ./gradlew tinkerPatchDebug 报错:A problem occurred evaluati
2017-05-27 11:34:05
351
原创 Android TextView 跑马灯问题
当页面上还有其他动态刷新的组件时,会对TextView的跑马灯效果造成影响,解决方法就是重写一个TextView下面是个源自网络的简易的栗子,仅仅为了解决问题import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphic
2017-01-24 16:21:30
690
原创 android 内存泄漏解决方案
借助Android Studio的Analyze-Inspect Code对代码做静态分析,常见的内存泄露问题有:1. 静态变量引起的内存泄露;解决方案:使用Application的Context就可以解决这类内存泄露的问题了2. 非静态内部类引起内存泄露(包括匿名内部类)隐式持有主类;如 Handler。解决方案:解决方法是将内部类写成静态内部类,在静态内
2017-01-12 20:49:02
347
原创 Android Webview 获取网页form 提交的数据
public class WebActivity extends BaseActivity { @ViewInject(R.id.web_view) private WebView mWebView; @ViewInject(R.id.tv_title_center) private TextView mTitle; @Override prote
2016-12-26 20:48:12
6992
原创 JNI
#1. c里面 JNIEnv是个二级指针,c++里直接是个指针,因为c++里有this指针表示结构体自己;#2. JNIEnv代表java运行环境,在c中调用java代码#3. java调用的native方法命名规则 Java_完整类名_方法名(JNIEnv * env,jobject thiz......)每个native方法至少有两个参数JNIEnv ,jclass(静态)或者jo
2016-12-07 16:24:55
285
原创 C——预编译
1. 预编译:在编译之前,直接替换相应的代码文本2. 编译:形成目标文件 .obj3. 连接:将目标代码与C函数库连接合并,形成最终的EXE文件头文件告诉编译器存在这样的一个函数,连接器负责找到这个函数#include //把代码包含进来void main(){#include "my.txt"; getchar();}my.txt的内容为pri
2016-12-06 22:16:19
318
原创 C——union、enum、file
联合体(共用体)不同类型的变量共同占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在,节省内存,联合体变量的大小=最大的成员所占的字节数;枚举不可用指针遍历,枚举值默认从0开始,可自定义,必须为整型常量表达式,不可为中文typedef enum Aenum{星期一,星期二,星期三} Aenum;计算机的文件存储在物理上都是二进制文本文
2016-12-06 22:15:45
256
原创 C——结构体
16位系统:long是4字节,int是2字节32位系统:long是4字节,int是4字节64位系统:long是8字节,int是4字节c结构体 不能包含函数,但可以包含函数指针(就是个指针变量)c++结构体可以包含函数;struct StructA{//返回值 (*函数名)(参数列表...)int (*func_p) (int, i
2016-12-06 22:15:07
333
原创 C——字符串
使用char数组保存字符串字符串API http://www.kuqin.com/clib/#include void main(){char str[] = {'h','e','l','l','o'};//字符串必须以'\0' 结束,否则会打印到未知数据char str2[6] = { 'h', 'e', 'l', 'l', 'o' };char str3[20] =
2016-12-06 22:14:22
251
原创 C——动态内存
c内存结构1. stack 栈区,有一个最大的大小限制,一般是2M,超过之后会报stack overflow 错误系统自动管理这块内存,自动分配,自动释放,比如一些局部变量分配方式 int a[100];2. heap 堆区,可以分配系统内存80%的空间;由程序员自己手动分配,手动释放分配方式 int *p=malloc(字节数);//malloc 返回任意
2016-12-06 22:13:48
246
原创 C——指针
1. 指针保存的是内存地址,但是指针是有类型的,内存地址是没有类型的;2. 指针类型的数据大小和指定的平台位数有关,指定32位系统,指针占4字节,指定64位系统,占8字节。注意:是编译器指定的位数,跟电脑系统的位数没有关系;#include void main(){int a = 10;int* p = &a;printf("int pointer size -->%d\n
2016-12-06 22:13:04
219
原创 ListView缓存 RecycleBin 解析
\ /** * The RecycleBin facilitates reuse of views across layouts. The RecycleBin has two levels of * storage: ActiveViews and ScrapViews. ActiveViews are those views which were onscreen at
2016-09-19 20:47:11
397
原创 Android 性能优化工具
1. Allocation TrackerAllocation Tracker是android studio自带的一个功能,我们可以在MemoryMonitor中打开使用: 如上图,点击红框按钮,start allocation tracking 然后操作app,开始allocation tracking,当认为需要结束的时候,再次点击按钮,稍等片刻,即可以在android studio中du
2016-09-05 10:34:45
1252
原创 EnumMap
用途:把类型和数据连接起来。转一个示例demo,一看就懂。import java.util.EnumMap;public class Planet { public enum DataBaseType { MYSQL, ORACLE, DB2, SQLSERVER } private EnumMap urls = new EnumMap( DataBaseTy
2015-01-08 16:09:52
383
隐markof模型 有关图像处理和决策隐 Markov 模型及其在自然语言处理中的应用
2008-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人