首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android上颤动访问隐藏方法Lsun/misc/Unsafe error

Android上颤动访问隐藏方法Lsun/misc/Unsafe error是指在Android开发中,尝试访问隐藏的方法Lsun/misc/Unsafe时出现的错误。

概念:Lsun/misc/Unsafe是Java中的一个类,它提供了一些底层操作的方法,包括直接操作内存、线程同步、对象实例化等。然而,在Android中,由于安全性和稳定性的考虑,部分方法被隐藏起来,无法直接访问。

分类:这个错误属于Java反射相关的问题,涉及到Java的底层操作。

优势:隐藏方法可以保护Android系统的安全性和稳定性,防止开发者滥用底层操作,导致系统崩溃或安全漏洞。

应用场景:一般情况下,开发者不需要直接访问隐藏方法Lsun/misc/Unsafe,因为Android提供了丰富的API和框架来满足开发需求。只有在特殊情况下,需要进行一些底层操作时,才会考虑使用反射等方式来访问隐藏方法。

推荐的腾讯云相关产品:腾讯云提供了丰富的移动开发和云计算相关产品,可以帮助开发者构建稳定、安全的移动应用。以下是一些推荐的产品:

  1. 腾讯移动推送:提供消息推送、用户行为统计等功能,帮助开发者实现消息推送和用户分析。 产品介绍链接:https://cloud.tencent.com/product/tpns
  2. 腾讯云函数(SCF):无服务器计算服务,可以帮助开发者快速部署和运行代码,无需关心服务器管理。 产品介绍链接:https://cloud.tencent.com/product/scf
  3. 腾讯云数据库(TencentDB):提供多种数据库服务,包括关系型数据库、NoSQL数据库等,满足不同应用的存储需求。 产品介绍链接:https://cloud.tencent.com/product/cdb

请注意,以上推荐的产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Netty10# 堆外内存底盘PlatformDependent

Method对象,用于反射调用 JAVA_VERSION 获取Java版本 IS_ANDROID 系统是否为Android UNSAFE_UNAVAILABILITY_CAUSE 系统不支持UNSAFE...会将异常封装在此变量中 INTERNAL_UNSAFE Java9中Unsafe实例对象 IS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE 启用反射访问,在Java9版本之前是禁止的...@7 Java9以及以上版本检查jdk.internal.misc.Unsafe以及其方法allocateUninitializedArray,并赋值给INTERNAL_UNSAFE和ALLOCATE_ARRAY_METHOD...重要方法走查 PlatformDependent0提供的方法,主要判断Unsafe是否可用、Unsafe分配堆外内存、Unsafe从堆外内存获取数据等。下面挑几个走查下。...获取最大堆外内存通过sun.misc.VM#maxDirectMemory方法获取 MPSC_CHUNK_SIZE 使用JCTools提供的无锁队列,初始化队列容量,默认1024 MIN_MAX_MPSC_CAPACITY

72710

Android避坑指南,Gson与Kotlin碰撞出一个不安全的操作

,通过sun.misc.Unsafe构造了一个对象。...注意:Unsafe该类并不是所有的Android 版本中都包含,不过目前新版本都包含,所以Gson这个方法中有3段逻辑都是用来生成对象的,你可以认为3重保险,针对不同平台。...本文测试设备:Android 29模拟器 我们这里暂时只讨论sun.misc.Unsafe,其他的其实一个意思。 sun.misc.Unsafe和许API?...Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用...大家都知道在Android P上面,Google限制了app对hidden API的访问

1.4K20
  • ART深度探索开篇:从Method Hook谈起

    Android的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容...Unsafe 和 Memory 要在Java层操作内容,也不是没有办法做到;JDK给我们留了一个后门:sun.misc.Unsafe 类;在OpenJDK里面这个类灰常强大,从内存操作到CAS到锁机制,...但是在Android 平台还有一点点不一样,在 Android N之前,Android的JDK实现是 Apache Harmony,这个实现里面的Unsafe就有点鸡肋了,没法写内存;好在Android...{ static final String UNSAFE_CLASS = "sun.misc.Unsafe"; static Object THE_UNSAFE; private...native层的指针表示,在Android N更明显,这玩意儿直接就是一个long),现在我们已经知道这两个地址是什么,那么我们把 replaceArtMethod 代表的内存复制到 originArtMethod

    2.6K10

    神奇的魔法类和双刃剑-Unsafe

    为了让开发者有机会过渡到尽量不使用sun.misc.Unsafe,默认不允许Java应用代码访问sun.misc.Unsafe类,同时在java.base模块克隆了一个不能被外部访问的jdk.internal.misc.Unsafe...3、Unsafe提供的直接内存访问方法中使用的内存不受JVM管理(无法被GC),需要手动管理,一旦出现疏忽很有可能成为内存泄漏的源头。 暂时总结出以上三点问题。...不要在这个偏移量执行任何类型的算术运算,它只是一个被传递给不安全的堆内存访问器的cookie。注意:这个方法仅仅针对静态属性,使用在非静态属性上会抛异常。...不要在这个偏移量执行任何类型的算术运算,它只是一个被传递给不安全的堆内存访问器的cookie。注意:这个方法仅仅针对非静态属性,使用在静态属性上会抛异常。...低级同步原语 低级同步原语的相关方法在JDK8还能通过sun.misc.Unsafe使用,在JDK9以后sun.misc.Unsafe和jdk.internal.misc.Unsafe都移除了相关的方法

    2.2K20

    Conccrent中 Unsafe类原理 以及 原子类AutomicXX的原理以及对Unsafe类的使用

    Unsafe类的介绍 Java中基于操作系统级别的原子操作类sun.misc.Unsafe,它是Java中对大多数锁机制实现的最基础类。...请注意,JDK 1.8和之前JDK版本的中sun.misc.Unsafe类可提供的方法有较大的变化,本文基于JDK 1.8。...sun.misc.Unsafe类提供的原子操作基于操作系统直接对CPU进行操作,而以下这些方法又是sun.misc.Unsafe类中经常被使用的: java不能直接访问操作系统底层,而是通过本地方法访问...这些操作发生在CPU一级缓存(L1) 或者二级缓存(L2)中,但是这些方法并不保证工作在其它内核的线程“立即看到”最新的属性值。...,但是这些方法保证工作在其它内核的线程能“立即看到”最新的属性值——也就是说这些方法满足volatile语义(后续文章会详细介绍volatile的详细工作原理) 总结: Unsafe类的总结已经写完

    82320

    Java Concurrent Atomic实现原理&源码解读(JDK 10)

    因为在底层讨论,所以AtomicInteger属于上层实现了,这里不算是一种,但在上层应用中还是算一种原子的) 1、使用原子性的FieldUpdaters,利用了反射机制,操作开销也会更大; 2、使用sun.misc.Unsafe...在Java 9时出现了VarHandle来部分替代java.util.concurrent.atomic 和sun.misc.Unsafe。...VarHandle 可以与任何字段、数组元素或静态变量关联,支持在不同访问模型下对这些类型变量的访问,包括简单的 read/write 访问,volatile 类型的 read/write 访问,和 CAS...there * are unresolved cyclic startup dependencies. */ private static final jdk.internal.misc.Unsafe...U = jdk.internal.misc.Unsafe.getUnsafe(); private static final long VALUE = U.objectFieldOffset(

    78320

    java线程池(八):ForkJoinPool源码分析之四(ForkJoinWorkerThread源码)

    对于InnocuousForkJoinWorkerThread子类的支持,要求我们在此处和子类中破坏很多封装,通过Unsafe访问和设置Thread字段。...,采用unSafe方法,在这个类的INHERITEDACCESSCONTROLCONTEXT位置处,设置传入的AccessControlContext对象。...ThreadGroup createThreadGroup() { try { sun.misc.Unsafe u = sun.misc.Unsafe.getUnsafe...ForkJoinPool根据访问权限的需要,定义了采用默认的创建方法,还是创建InnocuousForkJoinWorkerThread。...这里面值得我们借鉴的是,如果需要创建无其他访问权限的线程,实际这两种线程大部分内容都是相同的,因此可以通过继承来复用大部分代码。之后定义两个factory,让最终的用户根据需要选择factory。

    1.2K20

    使用堆外内存

    在 nio 以前,是没有光明正大的做法的,有一个 work around 的办法是直接访问 Unsafe 类。...如果你使用 Eclipse,默认是不允许访问 sun.misc 下面的类的,你需要稍微修改一下,给 Type Access Rules 里面添加一条所有类都可以访问的规则: 在使用 Unsafe 类的时候...Unsafe 对象提供了一系列 put/get 方法,例如 putByte,但是只能一个一个 byte 地 put,我不知道这样会不会影响效率,为什么不提供一个 putByteArray 的方法呢?...60.144962788952604% used 可见堆内存都是正常的,重新回到业务日志里寻找异常,发现出现在堆外内存的分配上:  java.lang.OutOfMemoryError at sun.misc.Unsafe.allocateMemory...BTW,如果在执行 jmap 命令时遇到: Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach

    68910

    每日一博 - CAS(Compare-And-Swap)原理剖析

    文章目录 What's CAS & sun.misc.Unsafe CAS & sun.misc.Unsafe 以AtomicInteger为例底层原理剖析 CAS缺点 ABA 问题 ---- What...完善一下,方便引入知识点,增加红框内如下代码: 输出 我们来分析下 getAndIncrement 先看看 AtomicInteger类 看方法的注释说明: 以原子的方式在当前值的基础加...可以看到其实是调用了unsafe# getAndAddInt 那先看看Unsafe类 呗 内部方法操作可以像C的指针一样直接操作内存 Unsafe位于sun.misc包中,该类的方法都是native...的本地方法 ,这也意味着unsafe类中的方法都直接调用操作系统底层资源执行相应的任务。...Unsafe类是CAS的核心类. 我们知道Java无法直接访问底层操作系统,需要通过native方法来实现。 Unsafe这个魔法类可以理解为一个后门,通过该类可以直接操作特定的内存数据。

    34510
    领券