自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (4)
  • 收藏
  • 关注

原创 dialog 设置宽度

完美设置dialog 的大小

2022-12-10 12:57:09 195 1

原创 Handler native 层

Handler native 层

2022-07-03 19:36:36 107

原创 FLAG_WATCH_OUTSIDE_TOUCH

FLAG_WATCH_OUTSIDE_TOUCH

2022-07-02 21:34:37 569

原创 PendingIntent 使用注意事项

PendingIntent

2022-07-02 20:28:53 57

原创 Activity 事件传递

Activity 事件传递

2022-07-02 18:50:40 75

原创 在 LayoutInflater 加载布局时,AttributeSet 如何找到对应view的属性

view 加载

2022-07-02 18:47:13 35

原创 view.post怎么就可以正确的获取宽高了

view 宽高测量

2022-07-02 18:45:27 54

原创 SynchronousQueue

笔记

2021-12-26 11:21:32 144

原创 阅读线程池

笔记

2021-12-26 11:18:59 152

原创 ReentrantLock

笔记

2021-12-26 11:16:42 113

原创 android 任务流 alpha

笔记

2021-12-21 14:36:55 981

原创 kotlin 新技术?

笔记

2021-04-30 14:50:21 74

原创 java 层binder 对象传递流程

1. 闲来无事又瞎折腾 binder 源码,以前 看binder理论 云里雾里的不知所云,于是就来折腾了,只为念头通透。2. 从bindService 方法开始来了解 java binder 对象的传递过程.基于4.4源码:ContextImpl.java1.以此为入口 sd 是一个java binder。ActivityManagerNative.getDefault().bindService( mMainThread.getApplicationThre.

2021-01-03 17:57:23 337

原创 Handler 内存泄露详细原因

1. 说Handler内存泄露这种文章挺多的,基本就是handler 使用不当 持有外部引用导致的内存泄露完毕.2.根据可达性gc 算法,当一个引用没有被root 对象引用时,该对象内存随时被系统回收,那么handler 的引用链又是什么呢?未指定Looper 默认就使用主Looper ,那么主Looper 在哪里创建呢?在ActivityThread类中: public static void main(String[] args) { ... ..

2020-12-24 15:00:05 193

原创 1.看看大厂app如何报活的

某日,突然来了兴趣,想研究下安卓的保活功能,于是有了下面....一、某招聘 app1.MMSServiceNative 类被保活在其oncreate 方法调用 private void c() { if (VERSION.SDK_INT >= 21) { this.d();//开启Job 定时 } //利用bug 开前台service if (this.f() && VERS.

2020-09-22 08:56:14 441

原创 android 花式保活

1.在看到19-24版本不可见前台serivce,就有一个疑问 25 以后不行? 带这个疑问去看了下8.0 源码发现,可以做到不可见前台serivce,那怎么玩呢:2.先创建个service :public class LocalDaemonService extends Service { private static final String TAG = "LocalDaemonService"; public static final int NOTICE_ID =...

2020-09-22 08:53:46 546 4

原创 RecyclerView 第一个item 无动画

1.前提 引用com.android.support:recyclerview-v7:27.1.1,setAdapter后还没有回调onLayout,就添加数据然后调 用adapter.notifyItemInserted(xx)方法2.原因 在setAdapter 多出了: void processDataSetCompletelyChanged(boolean dispatchItemsChanged) { mDispatchItemsChangedEvent |=...

2020-09-15 15:51:32 297

原创 1.悬浮窗口检测顺序

1.华为10:调用startActivityForResult方法跳到悬浮页面.点击开启时,这时候已经调用了onActivityResult,这时检测为false.2.改为在onActivityResult 做一个标志,在onResume时去检测悬浮权限为true.3.在华为 4.4 跳到悬浮页面时已经调试onActivityResult.没有返回居然调用onResume 方法 检测为false,改为在onRestart方法检测....

2020-07-28 08:33:45 168

原创 imx6 主板系统签名

1.从源码中找到 签名文件,签名然后安装 报:PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE问卖家技术人员不知道问百度...2.百度全都是教你怎么签名的,去官网找...原文:These keys are used to sign applications separately for release images and are not used by the Android build system. Thebuild s...

2020-05-09 10:43:14 268

原创 Handler 发送消息错误

1.android 4.4.2 handler.sendMessage报错The specified message queue synchronization barrier token has not been posted or has already been removed2. android 5.0 报 This message is already in use...

2020-04-20 14:47:41 633

原创 Android Matrix 理解与源码阅读

1. 在画布 会使用 rotate ,translate,skew 方法,对画布旋转,移动。这些对画布的操作数据使用的是Matrix 对象存放的,是以一维 数组来存放3*3阶矩形数据.2.3*3阶矩形是 有三行三列数据 如: 1 2 3 a= 1 2 3 1 2 33.a *b 的矩形如何计算的呢 (公式: ...

2020-02-16 12:39:33 219

原创 让PopupWindow 可以投影问题

1.其他三个同事搞了半天解决不了,最后我也上去试了试.百度找不到,就跟踪源码解决问题.首先调用setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT))设置为背景透明.然后在外面在套一层容器.像这样<RelativeLayout xmlns:android="http://schemas.android.com/apk/re...

2019-09-13 14:29:19 351

原创 RadioGroup和RadioButton 结合使用出现的问题.

1.使用RadioGroup check方法会使 回调接口的onCheckedChanged方法回调两次.check 代码: public void check(@IdRes int id) { // don't even bother if (id != -1 && (id == mCheckedId)) { ret...

2019-09-13 14:04:05 427

原创 int i=3; i=i++;i等于几.偶然看到的面试题

第一眼看到这种题,心里mmp,这么简单也放出来.看了答案,答错了,心中无数的cnm 神兽略过.答案为3.想这么简单的题,又找不到原因,我一般是直接用工具把class文件解析字节码.以下为解析的代码: 0 iconst_3 将常量 3 push 到栈顶 1 istore_1 从栈顶pop 存储到局部变量表 索引为1 2 iload_1 读取在局部变量表索引为1的变量,并push 栈顶中...

2019-09-13 11:56:24 4322 1

原创 Android ThreadLocal 源码分析

1.为啥 说是Android ThreadLocal ,而不是java ThreadLocal,因为Android 对它进行了优化.优化地方:内存复用,使用弱引用解决内存泄漏.而且他们处理方式也不同Java 使用类来包裹 key和value的.使用魔数0x61c88647, 计算得到的索引值偶数和奇数之间不断切换.而Android 只是在偶数索引index 存放key ,index+1来存放值....

2019-05-09 17:23:01 311 1

原创 android 消息模型之 执行源码分析

1.在我看来 一个持续运行应用程序 就是main方法进入 ,然后在里面使用消息模型不断接受系统或者用户的请求并作出对应的处理.例如qt 的信号与槽 ,win32 消息映射(要自己实现) ,android 的handler+looper .他们共同的点一直做死循环,避免程序一运行就退出,并且不断接受系统或者用户的请求并作出对应的处理.2.那么android应用 最开始是在哪个类进行死循环的...

2019-05-07 16:46:28 102

原创 从官网学习volley框架之执行流程源码分析

在学习的android 系统源码时 发现了volley 这个库,于是就学习学习.1.volley 官网使用说明地址:volley 从官网就知道volley 简单的使用,优点和缺点优点:Automatic scheduling of network requests. //自动处理网络请求 Multiple concurrent network connections.// 适用多并...

2019-04-26 15:28:45 139

原创 从usb 实际应用中分析源码之claim通信节点

1.usb想要通信就必须要claim 到通信的节点上.    mUsbDeviceConnection.claimInterface(intf, forceClaim);2.调用的是本地方法在 android_hardware_UsbDeviceConnection.cppstatic jbooleanandroid_hardware_UsbDeviceConnection_cla...

2019-01-20 14:35:07 1544

原创 从usb 实际应用分析源码之usb权限

1.第二步就是判断权限是否开放,因为在open 是会对权限检验所以必要的: mUsbManager.hasPermission(mDevice)); mUsbManager.requestPermission(mDevice, mPermissionIntent); 2.直接看UsbService 吧 public boolean hasDeviceP...

2019-01-20 14:33:48 461

原创 从usb 实际应用分析源码之usb遍历

1.HashMap&lt;String, UsbDevice&gt; deviceList = this.mUsbManager .getDeviceList(); 从中得到系统已经为你遍历好的usb设备,IUsbManager 真正调用的是UsbService ,直接去看UsbService.2.看注释 usb 查找,添加,删除是调用HostManager 类方法的.usb 设备 状...

2019-01-20 14:32:24 476

原创 使qt 写蓝牙打印机demo 总结

一个android 工程师去写win蓝牙动态库,有泪流不尽呀.写完又要写界面测试 mfc 不会,qt又是半吊子 最后选择了qt.基于qt5写的总结:1.打印乱码: 因为打印支持gbk 编码打印     QTextCodec::setCodecForLocale(QTextCodec::codecForName("gbk"));      QByteArray bar2= QString(...

2018-11-07 00:12:13 1268

原创 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 安装错误

签名冲突:删除原来安装的就可以安装上了.

2018-11-01 14:11:46 1647

原创 使用libusb库 去除usb 权限窗口

1.刚刚进入这家公司时就碰到usb权限的问题.有时usb 无法及时的通过广播来通知用户有没有授权或者到底有没有发送广播还是个未知数.还有就是权限窗口用户不喜欢.在网上找了些资源 ,并没有发现不用改系统源码就可以直接解决问题的代码.直到接到一个项目写javapos 在linux 用libusb 编写 usb 打印机通信,就萌生用libusb 库在android 下通信 .2.在未用libusb ...

2018-08-20 15:38:57 1112

原创 在linux系统 编译libusb

在 编译libusb 的事已经过去差不多两个月多了,只要模模糊糊的记得大概的步骤和碰到一些问题.并且要在linux平台  使用usb 打印编译环境在虚拟机中 linux 系统最好是安装最全最大的,如果不懂的话会很麻烦.1.编译  编译步骤2.centos 32位 编译时缺少 缺少libudev 解决方法:https://centos.pkgs.org/7/centos-x86_64...

2018-08-20 14:29:06 1857

原创 android 获取usb 设备信息

1.用户需要获取usb 设备名,来判断是不是我方的打印机 2.代码public String getProductName(){ byte[] rawDescs = mUsbDeviceConnection.getRawDescriptors(); String manufacturer = "", product = ""; try { byte[] buffer...

2018-08-20 13:43:31 8196

原创 Android 串口通信

1.去github 搜索 AndroidSerial 看看别人的用例就行了.不过一般是google 项目翻写过来的.2.去下载看看文档 链接3.我的代码#include &lt;pthread.h&gt;#include &lt;termios.h&gt;#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include ...

2018-08-20 12:54:56 564 1

原创 打印光栅位图

1.了解光栅打印指令xh  yh 有时候这些限制是吹大了,特别是打印一维码和二维码 是吹大了这些值没有什么用..看m 这个取值就行了 0就是正常打印1 倍宽 宽度增加一倍;如图0 是上面,1 是下面. 2.图片数据解析时是高位在前低位在后 msb 指的是高位 打印的点为1 不打印为0;3.看程序 /** * @param bitmap * @ret...

2018-08-20 10:47:23 4283 31

原创 用native 方法打印光栅位图

1.指令在这里 指令2.程序代码int pos[]={128,64,32,16,8,4,2,1};jint JNICALLJava_com_szsicod_print_utils_BitmapUtils_parseBitmap(JNIEnv *env, jclass type, jobjectjsrcBitmap, jbyteArray data) { jbyte *cmd...

2018-08-20 10:47:03 624

原创 R 文件无法生成styleable

clean 没有卵用,把styleable 声明转移到android library 能够正常编译出.过几天后突然发现清单文件包名和src里包名不一致,很6呀上个交接的人,修改其中的一个包名就可以了,然后重新导入R....

2018-05-02 12:39:35 497

原创 LruCache 原理

其他方法很简单,最核心的方法是trimToSize():   public void trimToSize(int maxSize) { while (true) { K key; V value; synchronized (this) { //参数异常 if (siz

2018-01-15 15:50:29 297

linux libusb通信

linux libusb通信linux libusb通信linux libusb通信linux libusb通信

2018-08-20

android 串口使用文档

android 串口使用文档android 串口使用文档android 串口使用文档

2018-08-20

深入jvm 内核-原理,诊断于优化视频教程

深入jvm 内核-原理,诊断于优化视频教程.算是比较基础的

2017-11-07

android 第三方框架教程

android 第三方框架教程 okhttp ,nohttp,afinal,banner ,freso piccaso,eventbus等等

2017-11-07

空空如也

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

TA关注的人

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