在使用某些类的方法时,发现其内部就一行throw new RuntimeException("Stub!"),但是实际运行中并没有抛出该错误,该方法也并没有语法报错。

因此可能是系统设计者故意隐藏此部分的实现源码。

  1. 使用的Android Studio或者其他IDE看jar包的源码的时候,编译工具只让你看到方法签名,不让你看方法的实现;
  2. Android SDK自带的Source源码包很小,并没有包括所有的Android Framework的源码,仅仅提供给应用开发参考用,一些比较少用的系统类的源码并没有给出,所以有时候你会看到throw new RuntimeException("Stub!")。
  3. 此外,在IDE里看源码的时候,有时候一些方法或者类会出现报红(找不到)的情况:这是因为这些方法或者类是被Android SDK隐藏的,出于安全或者某些原因,这些API不能暴露给应用层的开发者,所以编译完成的android.jar包里会把这些API隐藏掉,而我们的Android项目是依赖android.jar的,查看源码的时候,IDE会自动去android.jar找对应的API,自然会找不到。当然,这些API在ROM中是实际存在的,有些开发者发现了一些可以修改系统行为的隐藏API,在应用层通过反射的方式强行调用这些API执行系统功能,这种手段也是一种HACK。

转载于:https://www.cnblogs.com/lucktian/p/7016383.html

为什么源码中很多方法就一行throw new RuntimeException(Stub!)相关推荐

  1. Nacos源码中为什么使用了String.intern方法?

    前言 面试的时候经常被问到String的intern方法的调用及内存结构发生的变化.但在实际生产中真正用到过了吗,看到过别人如何使用了吗? 最近阅读Nacos的源码,还真看到代码中使用String类的 ...

  2. JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。

    JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的. 看完这段代码是不是很熟悉,与我们上面代码基本类似.单列集合都使用到了迭代器,我们以Arr ...

  3. 从 vue3 和 vite 源码中,我学到了一行代码统一规范团队包管理器的神器

    1. 前言 大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.已进行四个月了,很多小伙伴表示收获颇丰. 想学源码 ...

  4. android源码使用方法,android源码中使用到的设计模式(创建型)

    1.单例模式 1.1定义 确保某个类只有一个实例,而且自行实例化并向整个系统提供者个实例. 1.2单例的形式 饿汉模式:第一次就加载,用空间换时间. public class SingleTon { ...

  5. vue 拷贝 数组_vue源码中值得学习的方法

    最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大家对深入学习js有所帮助.如果大家都能一眼看懂这些函数,说明技术还是不错的哦. 1. 数据类型判断 Objec ...

  6. 奥莉嘎!!!ArrayList源码中remove、removeAll、clear方法我又肝了一遍,收获良多

    前言 点赞在看,养成习惯. 点赞收藏,人生辉煌. 点击关注[微信搜索公众号:编程背锅侠],第一时间获得最新文章. 看源码血泪史 刚开始工作面试的时候,面试官经常问ArrayList源码相关的问题,基本 ...

  7. 【学以致用】android功能实现9---Launcher之AS中,在Launcher源码中增加google负一屏的实现方法

    负一屏是相对于正常屏幕而言,正常屏幕是指桌面上用户用于摆放图标(也可以编辑图标位置)的屏幕,根据用户喜欢可以有一个或多个屏幕.在一些手机当中,包括苹果和安卓,在正常屏幕的最左边一屏,我们再往左滑,会出 ...

  8. 快速理解工厂方法模式,及其在源码中的应用

    (一).什么是工厂方法模式 有一个总工厂负责生产各种电视产品,此时来了一个生产小米电视的需求,就会分配出一个制作小米电视的工厂,然后就能用该工厂生产小米电视了. 上面这种通过工厂来实例化类的方式抽象到 ...

  9. 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )

    文章目录 一. 图片质量压缩方法 二. 查找对应的 Native 方法源码 三. 分析 Bitmap.cpp 中动态注册 Native 方法 在博客 [Android 内存优化]图片文件压缩 ( An ...

  10. WebRTC源码中turnserver的使用方法

    WebRTC的源码中自带了一个turnserver,编译之后,会在out/Default下生成一个turnserver文件,可以充当STUN和TURN server.用法如下: ./turnserve ...

最新文章

  1. Windows 7 64位机上搭建Android开发环境
  2. 地址池命令 思科理由_思科互联网络操作系统 ——路由器接口
  3. JavaScript:对Object对象的一些常用操作总结
  4. meta标签的使用方法(PC端)
  5. 深度学习基础(三)loss函数
  6. Python time asctime()方法
  7. android里面的广播,Android里面的各种广播
  8. 如何解决Configuration system failed to initialize
  9. android 性能测试iozone篇
  10. 数据恢复基础和进阶教程(二)
  11. 销售管理系统c语言 总结报告,C语言课程设计报告-药品销售管理系统.doc
  12. 华为理工女,8年熬出头......
  13. 【论文阅读】去偏、缓解数据稀疏的多任务因果推荐CVR优化
  14. 【年月】-单词学习记录(模板)
  15. 全国各地迎来降雪,我们准备了五件发热好物,让你暖暖度过这个寒冬 | 钛空实测
  16. python爬12306_爬虫12306返回数据怎么解析
  17. nmap 扫描端口_Nmap端口规格和扫描顺序
  18. 快速排序算法原理 Quicksort —— 图解(精讲) JAVA
  19. About Sealed
  20. python手写数字识别实验报告_python神经网络编程实现手写数字识别

热门文章

  1. 定时器/计数器0(定时器)
  2. 自动修改mysql5.7初始化密码
  3. innodb_lru_scan_depth
  4. HDOJ 1106 排序
  5. @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别 .(转)
  6. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用6
  7. ASP.NET Core Web多语言项目
  8. 网站CPU占满,微信经常SSL不能建立的错误排查
  9. C# 性能优化之斤斤计较篇 一
  10. JQuery Form AjaxSubmit(options)在Asp.net中的应用注意事项