刘望舒 刘望舒
4年前
Android深入理解JNI(一)JNI原理与静态、动态注册
Android框架层Android深入理解JNIAndroid框架层本文首发于微信公众号「刘望舒」前言JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在JavaFramework层。这一个系列我们来一起深入学习JNI。<!more1.JNI概述Android系统按语言来划分的
Wesley13 Wesley13
3年前
java多线程之ReentrantLock
前言相信学过java的人都知道synchronized这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣了解,今天我将带领你轻松的学习下java中非常重要,也非常基础的可重入锁ReentrantLock的实现机制。R
刘望舒 刘望舒
4年前
Android包管理机制(二)PackageInstaller安装APK
Android框架层Android包管理机制Android框架层本文首发于微信公众号「刘望舒」前言在本系列上一篇文章中我们学习了PackageInstaller是如何初始化的,这一篇文章我们接着学习PackageInstaller是如何安装APK的。本系列文章的源码基于Android8.0。1.PackageInstaller中的处理紧接着上一篇的内
刘望舒 刘望舒
4年前
Android输入系统(二)IMS的启动过程和输入事件的处理
Android框架层Android输入系统Android框架层本文首发于微信公众号「刘望舒」基于Android8.1前言在上一篇文章中,我们学习了IMS的诞生(创建),IMS创建后还会进行启动,这篇文章我们来学习IMS的启动过程和输入事件的处理。1.IMS的启动过程IMS的创建在SystemServer的startOtherServices方法中,
刘望舒 刘望舒
4年前
Android深入四大组件(二)Service的启动过程
Android框架层Android深入四大组件categories:Android框架层本文首发于微信公众号「刘望舒」前言此前我用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程。建议阅读此篇文章前,请先阅读和这两篇文章。<!more1.ContextImpl到Activi
Stella981 Stella981
3年前
Cocos Creator 运行时与本地代码双向通讯
cocoscreator游戏在发布到android/ios等平台时,难免要与本地原生平台互相调用。官方为我们提供了Java原生反射机制和ObjectiveC原生反射机制。以android的Java平台为例cocoscreator运行时调用android原生环境varojsb.reflection.cal
Wesley13 Wesley13
3年前
Oracle查询被锁的表以及解锁表
1.查询引起了锁表的原因selectl.session_idsid,s.serial,l.locked_mode,l.oracle_username,s.user,l.os_user_name,s
Wesley13 Wesley13
3年前
JS 判断各种设备,各种浏览器
话不多说,直接看代码1、区分Android、iphone、ipad:varuanavigator.userAgent.toLowerCase();if(/android|adr/gi.test(ua)){//安卓}elseif(/\(i^;;(U;)?CPU.
Stella981 Stella981
3年前
Spring Boot中建议关闭Open
前言一天,开发突然找过来说KLock(https://gitee.com/kekingcn/springbootklockstarter)分布式锁失效了,高并发情况下没有锁住请求,导致数据库抛乐观锁的异常。一开始我是不信的,KLock是经过线上大量验证的,怎么会出现这么低级的问题呢?然后,协助开发一起排查了一下午,最后经过不懈努力和一探到
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨推送通知自定义在不同设备上的兼容性问题如何处理?
处理推送通知自定义在不同设备上的兼容性问题,可以采取以下策略:1.适配不同Android版本Android8.0以上版本:使用NotificationChannel来创建通知渠道,并设置通知的属性,如灯光颜色、是否显示角标、震动模式等。Android8.0