自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一看就是大佬的专栏

不可能!我写的代码里不可能有bug!

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

原创 NFS从入门到精通再到放弃

NFS在linux、windows、mac部署和基本原理分析,

2022-10-30 14:36:51 677

原创 【NDK】Java和Native相互调用的“线程切换”

attach/detachThread会导致JVM线程切换,但操作系统级别的线程并没有

2021-12-26 22:38:27 3057 1

原创 不可能,绝对不可能,minSdkVersion设置23,App咋就崩溃了?

代码里如果有使用到 ActivityInfo.ApplicationInfo.nativeLibraryDir的需要注意版本兼容问题

2021-12-26 22:13:52 2970

原创 【Spark】网络原理概述

先来个奇闻轶事:宇宙射线导致网络数据错误(思科路由器)OSI七层模型市场化失败的原因:纸上谈兵、制定周期过长、一些功能多层中重复出现TCP/IP四层模型:层次协议应用层HTTP、FTP、SMTP、POP3传输层TCP、UDP网络层IP、ICMP网络接口层Ethernet、PPP、ARP、RARP路由器最上只到网络层网络拓扑终端机器 —> 路由器 —> 网关(内部网关 —> 统一网关) —> 地区ISP —> 主干IS

2021-04-27 20:24:36 591

原创 【Spark】常见设计模式概览、相似对比及最佳实践

概述单例模式必要性:静态变量在程序一开始就需要创建好对象,如果这个对象非常耗费资源,并且这次程序执行没有使用它,造成不必要的浪费(伪需求)适合场景:线程池、缓存、路由表、默认设置等分类:饱汉/饿汉、线程安全/线程不安全要点:私有构造–> 如何防止反射攻击:1.static记录标识位 2.枚举实现实现方式:静态内部类、双加锁、枚举饿汉式是线程安全的:–> 前提:同一类加载器,一个类只会被初始化一次;有些仅有主动引用(new, getstatic, putstatic, in

2021-04-15 15:13:44 279

原创 【Bug】EGL内存泄漏导致Android系统无响应的问题

场景描述:在自行压测检查的时候,发现到一个非常难排查的问题:1.发起录制、 2.sleep(1000)、 3.结束录制反复执行以上步骤,约五十次左右,app假死,导致整个机子无响应,只能关机重启设备原因分析:猜测1:大屏端的录屏和取消录屏,申请共享内存的时候冲突了?表现上不像,比较像内存泄漏导致的。猜测2:内存泄漏用Profile分析了下Java部分,不是很多而且,Java内存泄漏,也不该爆系统猜测3:native内存申请没释放,爆堆外内存了,不过这比较难使用Profile,因为要不

2021-04-06 15:14:29 1069

原创 【Bug】一次Android系统应用32位升级到64位的踩坑记录

项目场景:二期会议室需要替换成OD20的会议平板,为了方便安装,给了framework的同事一个会议室版本的无线投屏APK,作为系统应用打包进去了。将无线投屏升级到现在调试的版本,启动后,底部通知栏就duang duang duang的弹,随之系统crash。环境:OD20会议平板角色:32位的会议室版本Apk,64位调试版Apk原因分析:前置知识:不借助adb,不能直接在launcher里卸载系统应用,进入设置卸载覆盖安装的,可将app恢复成系统应用系统应用如果短时间内反复crash,

2021-04-01 18:27:26 5983

原创 【Bug】记录一次因class前向引用导致的运行时的高频偶现崩溃

项目场景:Windows提供动态链接库的小伙伴应组长要求,整合了对外调用的头文件。我换了头文件后,发现能够正常编译运行,但是在测试断网重连的时候,不对劲了。问题描述:Native error日志偶现fd找不到,这一句最后是定位到NetLink模块的一句Socket释放上,这一部分的日志打印都是偶现,但是崩溃的时候必出现libc的pthread_start和pthread_exit,所以一时间很迷茫。原因分析:怀疑点1:异常处理线程没有关闭结论:并不是,且打印线程id,是另启一个线程执行join

2021-01-12 13:48:29 219 1

原创 【Bug】Skia的SK_GL没有定义,但是GrContext::MakeGL需要使用

项目场景:因为无线投屏项目的反向传屏OPS和Mac端的时候,需要显示鼠标,当前方案是在Native层将坐标通过反射发到Java层进行绘制,由于这是一个高频调用的方法(虽然我知道JVM对高频的反射会)。所以,打算编译个Skia,自己在Native层画一下简单图形。问题描述:编译完Skia的动态链接库,把头文件CV到项目里,使用GrContext::MakeGL时发现这个函数用不了。原因分析:查看了下头文件,使用SK_GL宏定义进行选择编译了,这部分代码就没包进来。解决方案:还是按解决过程重现下吧

2020-12-28 00:30:52 562

原创 2020年终总结

2020年,是多灾多难的一年,也是很传奇的一年。年初,新冠肺炎,如寒流一般不可阻挡的席卷了整个华夏。庚子年正月,南方无雪,却似大雪封城。这一年离开了坑的我简历可以说是留下污点的公司(跳槽太频繁了,我也不想)没办法,疫情都拖工资了,所以求稳,又进了一个比较大的上市公司。不过竟然降薪,非常难受,倒不是看重这几千块钱,只是这弄的我好像很菜似的。不过,确实也是自己的求职战略出了错,我一直都是想先斩获两个备用offer,然后有底气了再去冲心仪的大厂。这不对,社招不同于校招,社招是接了offer希望你尽早过去打工的

2020-12-27 23:59:08 897 3

原创 2019年终总结

2019年,是命途多舛的一年。这一年,离开了舒适区,跳槽了。加入了一个电商公司,出于和该司CTO的志趣相投以及想要内部转岗Java的私心,而且杭州是电商之都。可是,刚刚转正,CTO离职了。并且不到一年的时间,经历了3波大裁员,由于是最晚入职的,每次都是极高的概率,虽然最终从一次次风波中存活下来了,瑟瑟发抖。以上是公司的情况,算是很惨淡的一年。主要在于自己对入职公司的业务和背景不了解,也算是提前感受了多次中年危机。业务,对于一个公司太重要了,必须要有一个ATM项目。但是,由于眼界狭窄,觉得只要工资按时

2020-12-27 22:12:28 210

原创 【NDK】一次因不清楚动态库链接流程导致的声音无法播放的问题

前景提要公元2020年9月,无线投屏手机端正在如火如荼的进行。大部分流程是复用接收端的,加上Windows组的小伙伴很稳,开发进度非常顺利,投屏、反控的主流程基本走完。例会上遗留了一个声音暂时播放不出来的问题,故事也由此展开…情景再现Chapter 1A:声音播放不出来应该是小问题吧,估计哪里开关没开或者配置不对。B:应该是吧,等下排查一下。获得成就:Flag creator怀疑点:1. 调用流程有误2. 设置的解码参数手机不兼容因为解码播放是研究院做的,且基本流程是复用接收端的,流程也

2020-12-27 15:35:19 122

原创 三年经验Android面经

除非大厂,其他都问的差不多,问大部分也就着简历问,问了5年+的,也差不多就问这些…都是基础吧,区分度应该主要在于项目经验匹配度、职业素质、思维和运气上。1. 基础自定义View的流程,requestLayout和invalidate的区别–> ViewRoot的performTraversal切入measure、layout、draw(讲完基础,可提一提Surface的显示原理)Handler原理,Handler/Looper/MessageQueue关系–> 消息循环需要创建一个L

2020-12-27 15:33:34 663

原创 两年经验Android面经

去年跳槽不成功,在A公司又呆了一年。一年来收获蛮大,就公司项目来说,已经是非常熟悉了,很多入职不久的,都是不断抱怨,框架太老,技术太旧。这个是实话,但是细看里面的思想和设计还是能学到不少东西的,一年来也顺手优化了许多东西,根据业务也思考了很多更合理的方案。不过还是打算跳槽了,薪资和无法推动项目是个大问题,总不能鱼渔都不得吧。我是抱着找不到好的,就北上的心态找的。做股票期货的,经验类似,面试太过顺利…Activity的启动模式Activity和Fragment数据交互线程间交互的方法都行,进程间交

2020-12-27 15:33:21 225

原创 一年经验Android面经

年后开始不间断的找工作跳槽,面了好多家,其实问来问去问题都差不多,都记录在这一篇了,有时间把答案补上。有质的改变再新建文章。1.Fragment的生命周期太迷了,把onResume和onStop写反了,面试官说看了心里一凉…2.事件分发机制,以及涉及到的设计模式3.onMeasure的测量模式与特点4.线程间通信和进程间通信5.ArrayList删除元素-> fail-fast机制,用Iterator;或者倒序删除6.写出你认为最优的懒汉式单例模式-> 写的静态内部类,被问了

2020-12-27 15:33:02 361

原创 模块化太多build?批量删除android编译生成的build文件夹

想写这个主要是因为平时git上拉下来的项目太多,都有build,而且很占磁盘内存,想删掉,有点强迫症...而且如果一个app很多模块的话,每个目录下都有build最近学习framework,AMS、WMS、PMS各种启动流程看的云里雾里...写个小工具来舒缓下心情。语言采用:python代码:# -*- coding: utf-8 -*- import osimport time...

2018-09-20 10:16:04 1855

原创 JVM:Java内存区域和Java内存模型

第二遍看《深入理解Java虚拟机》了,代码的沉淀确实能对技术和理解带来一定影响。第一遍读这本书的时候感觉能看懂,但是抓不住重点,关键就记了下以下的概念:    1.Java的内存区域。    2.判断对象是否可被回收。    3.垃圾回收算法。    4.类加载机制、双亲委派模型。    5.静态分派和动态分派(实现多态的)。    6.多线程相关,volatile之类的。这次看理解是更深刻一点了...

2018-03-12 15:56:28 3048

原创 设计模式 -《Head First 设计模式》要点摘录

前言:       越来越觉得设计模式是开发者最重要的内功,一开始打算为了面试把RxJava、framework源码看看,装装逼。但是不知道从哪看起,而且记性不好,怕是看啥忘啥,就先看下设计模式吧,然后开始看《Head First 设计模式》,写的很生动,越看越有意思,不知不觉就看完了。看完以后,一直想找个机会在实际中好好用用,而且看到很多知识点,都惯性的联想到设计模式。怕是中毒太深...    ...

2018-03-09 18:20:22 219

原创 IPC系列(二)- AIDL

上一篇说了,AIDL是为了实现IPC,预定义的类似模板的代码。甚至可以像模板一样的生成代码,就像mybatis使用MBG一样。这一篇主要就生成的代码来讲一下。aidl生成代码方法比较简单,建议搜个教程生成以后对照着看。方法含义:1.DESCRIPTOR:Binder的唯一标识,通常是当前Binder的类名。2.asInterface(android.os.IBinder obj):static返回...

2018-03-09 14:55:03 204

原创 IPC系列(一)- 基本概念

很久不写博客了,因为觉得水平还没达到能share的地步,怕误导别人,所以一直比较喜欢用印象笔记记录。但是反正也不是热门博主,也记点博客上吧,大神看到了错误请斧正。(一)概念: IPC:(Inter-Process Communication)跨进程通信。 Binder:(IPC)Binder是Android的一种跨进程通信方式。 AIDL:Android Interface definiti...

2018-03-09 14:05:23 1055

转载 Erlang学习资源

Erlang语言绝对算得上是一种“小众”语言,但其未来的发展前景却是无法估量的,因为它可以解决传统语言很难解决的并行计算中的难题。Erlang是一种函数式(变量只能赋值一次)、强类型、动态类型(变量类型在运行时决定,代码需要编译后才能执行,与 Python,Ruby等不一样)、面向并发(Concurrency Oriented)的语言。最近实习的公司有个项目刚好要用Erlang来开发,对这个语言产

2016-06-14 11:30:34 310

转载 Erlang常用类型转换

例子结果atom_to_list(hello)."hello"list_to_atom("hello").hellobinary_to_list(>)."hello"binary_to_list(>)."hello"

2016-06-14 11:29:17 494

转载 Eclipse上GitHub的安装和上传过程详细示例

Eclipse上安装Git插件EGit 方法一:      Eclipse的版本eclipse-Java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装)     EGit插件地址:http://download.eclipse.org/egit/updates   在这个列表中,现在已经有3个版本可以安装。

2016-05-22 15:40:10 409

原创 安装Erlang和Eclipse下的Erlide(Windows)

由于工作需要,得学习Erlang,由于某些不可描述的原因,网上erlang的教程很少。新手不知怎么下手。基于Windows。Erlang的安装还是蛮轻松愉快的:1.下载:到http://www.erlang.org/downloads下载自己对应的系统版本。2.安装:选路径,安装。3.添加path:在环境变量Path下添加:D:\Program Files\erl7.3\bin

2016-05-11 21:53:00 1083 1

原创 腾讯视频解析,Java实现

今天学到一个Android网络视频播放程序,但是不知道为什么找了很多个网站的URL都不能播放,用硕鼠找的很多冷门网站的视频也不能用。所以就想是不是MediaPlayer播放视频的方法实在太OUT了,我想应该是的,但是网上找了个解析腾讯视频的代码(竟然还能用,而且还能解析最新的,看来中国的技术真的是敌不动我不动啊):package TX;import java.io.ByteArrayO

2016-05-03 23:33:19 7964

原创 电脑硬盘无端占用很多空间,不是中毒

今天看到电脑的F盘快满了,然后找解决方法。碎片清理、磁盘清理、安全模式之类的都不管用,刚装系统可不想格盘。还以为是碎片占的太多,但是60个G的文件占100G内存也太不像话了。打开360大文件查找,突然发现很早以前删除的伪装者怎么还在?回收站也清空了。就此下去,逐渐发现了问题所在:           这些都在$Recycle.bin下。方法来了,很简单:  1.我的电脑  --

2016-04-29 18:30:21 4658 1

转载 MFC下MD5加密算法实现

最近在写一个MFC的程序,里面用到MD5加密,上网百度了好一会,后来还是从学长的代码里面扣出来的。以下就做一下简单的介绍和使用:1、首先是.h的头文件。#ifndef MD5_H#define MD5_H #include #include  /* Type define *

2015-07-09 13:23:12 947

转载 指针数组和数组指针

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。in

2015-04-02 22:52:18 418

转载 数据库基础

一、SQL语句(1)Select 查询语句         语法:SELECT [ALL|DISTINCT] [AS 列名]                     [, [AS 列名] ...] FROM [,…]                     [WHERE [AND|OR ...]                     [GROUP BY

2015-03-16 21:08:47 260

空空如也

空空如也

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

TA关注的人

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