刘望舒 刘望舒
4年前
Android深入理解JNI(一)JNI原理与静态、动态注册
Android框架层Android深入理解JNIAndroid框架层本文首发于微信公众号「刘望舒」前言JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在JavaFramework层。这一个系列我们来一起深入学习JNI。<!more1.JNI概述Android系统按语言来划分的
刘望舒 刘望舒
4年前
Android输入系统(二)IMS的启动过程和输入事件的处理
Android框架层Android输入系统Android框架层本文首发于微信公众号「刘望舒」基于Android8.1前言在上一篇文章中,我们学习了IMS的诞生(创建),IMS创建后还会进行启动,这篇文章我们来学习IMS的启动过程和输入事件的处理。1.IMS的启动过程IMS的创建在SystemServer的startOtherServices方法中,
可莉 可莉
4年前
Vue 包大小优化
一、背景最近做了一个网站,uidea(https://uidea.tools/),是用来辅助独立开发者做一些UI设计的,当时只管开发,等部署完以后,发现访问速度堪忧毕竟是个小水管服务器,相比提高带宽,还是先看看代码上能不能优化一下,性价比更高这个是优化前的包大小,这家伙都上1.72M了,小水管加载时间直接往3s以上走了,臣妾扛
Stella981 Stella981
3年前
Cocos Creator 运行时与本地代码双向通讯
cocoscreator游戏在发布到android/ios等平台时,难免要与本地原生平台互相调用。官方为我们提供了Java原生反射机制和ObjectiveC原生反射机制。以android的Java平台为例cocoscreator运行时调用android原生环境varojsb.reflection.cal
Stella981 Stella981
3年前
Druid.jar包
首先了解一下,什么是Druid. Druid是Java语言中最好的数据库连接池,它能够提供强大的监控和扩展功能。 Druid是一个JDBC组件,它包括三部分: 1)DruidDriver代理Driver,能够提供基于Filter-Chain模式的插件体系。 2)DruidDataSource高效可管理的
Stella981 Stella981
3年前
Netty中粘包和拆包的解决方案
粘包和拆包是TCP网络编程中不可避免的,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。TCP粘包和拆包TCP是个“流”协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包
Wesley13 Wesley13
3年前
DELPHI开发LINUX包
DELPHI开发LINUX包我们知道,有了包的存在,开发插件架构的程序,才成为可能。DELPHI在WINDOWS里面的包的扩展名是.bpl。在LINUX里面的包的扩展名是.so。怎样在LINUX里面加载.so的包?不论加载WINDOWS的包,还是加载LINUX的包,都是使用LoadPackage()函数加载。func
Wesley13 Wesley13
3年前
JS 判断各种设备,各种浏览器
话不多说,直接看代码1、区分Android、iphone、ipad:varuanavigator.userAgent.toLowerCase();if(/android|adr/gi.test(ua)){//安卓}elseif(/\(i^;;(U;)?CPU.
Stella981 Stella981
3年前
JavaScript函数——闭包
闭包概念只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁例子functionouter(){varlocalVal30;returnlocalVal;}
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨推送通知自定义在不同设备上的兼容性问题如何处理?
处理推送通知自定义在不同设备上的兼容性问题,可以采取以下策略:1.适配不同Android版本Android8.0以上版本:使用NotificationChannel来创建通知渠道,并设置通知的属性,如灯光颜色、是否显示角标、震动模式等。Android8.0