【新角度】kotlin伴生对象companion object 那么对于JavanewKotlin之所以能抛弃静态成员,主要原因在于它允许包级属性和函数的存在,而且Kotlin为了维持与Java全局常量工具函数伴生对象@JvmStatic本文主要讲。
Java继承中的隐藏和覆盖 Java中变量与方法在继承中的隐藏与覆盖规则:1. 父类的实例变量和类变量能被子类的同名变量隐藏。 2. 父类的静态方法被子类的同名静态方法隐藏,父类的实例方法被子类的同名实例方法覆盖。 3. 不能用子类的静态方法隐藏父类的实例方法,也不能用子类的实例方法覆盖父类的静态方法,否则编译器会异常。4. 用`final`关键字修饰的最终方法不能被覆盖。 5. 变量只能被隐藏不会被覆盖,子类的实例变量可以隐藏父类的类变量,子类的类变量也可以隐藏父类的实例变量。
Plugin [id: ‘org.jetbrains.kotlin.jvm‘, version: ‘1.8.21‘] was not found Plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.8.21'] was not found in any of the following sources:
Bundle 风水 - Android Parcel 序列化与反序列化不匹配系列漏洞 Bundle 风水(Bundle Fengshui)是指在 Android 应用开发中,使用 Bundle 类传递数据时,需要注意一些优化技巧,以避免在传递数据过程中出现性能问题。
Bundle数据结构和反序列化分析 Android Binder是知名女程序员Dianne Hackborn基于自己开发的OpenBinder重新实现的Android IPC机制,是Android里最核心的机制。不同于Linux下的管道、共享内存、消息队列、socket等,它是一套传输效率高、可操作性好、安全性高的Client-Server通信机制。Android Binder通过/dev/binder驱动实
launchAnyWhere: Activity组件权限绕过漏洞解析 1、通过了解漏洞原理,开发者可以更好地了解漏洞的产生机理,进而在应用开发过程中采取相应的安全措施,避免漏洞的产生,提高应用的安全性。2、学习漏洞原理可以帮助开发者更好地理解 Android 平台的工作原理,深入了解操作系统的内部机制,有助于开发高质量的应用程序。3、学习漏洞原理可以帮助开发者更好地理解代码的运行方式和效果,从而提高代码的可读性和可维护性。4、学习漏洞原理可以帮助开发者了解目前主流的安全防护技术,掌握安全防护的最佳实践,从而更好地保障应用程序的安全性。总之,了解和学习Android漏洞原理可以
由View的onAttachedToWindow引发的图片轮播问题探究 本篇文章是在View的postDelayed方法深度思考这篇文章的所有的基础理论上进行研究的,可以说是对于View的postDelayed方法深度思考这篇文章知识点的实践。某天同事某进在做一个列表页添加轮播Banner的需求的时候,发下偶尔会出现轮播间隔时间错乱的问题。我看了他的轮播的实现方案:利用间隔轮播时长每次执行完轮播之后再次循环发送;代码貌似没有太大问题,但通过现象看来应该是失效了~!
Android代码静态检查(lint、Checkstyle、ktlint、Detekt) 不同团队的代码的风格不尽相同,不同的项目对于代码的规范也不一样。目前项目开发中有很多同学几乎没有用过代码检测工具,但是对于一些重要的项目中代码中存在的缺陷、性能问题、隐藏bug都是零容忍的,所以说静态代码检测工具尤为重要。
AndroidR兼容性适配指南 Android 11基于Android早期版本构建,增加了多种功能和更新,以保障用户安全并提高透明度和可控性。所有开发者都应查看隐私功能并测试他们的应用。具体影响可能会因每个应用的核心功能、目标平台和其他因素而异。
AndroidQ兼容性适配指南 Android 10系统开始 进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。作为这项工作的一部分,平台引入了进一步的改进,以简化向分区存储的转换。
分析java.lang.IncompatibleClassChangeError 【get】java.lang.IncompatibleClassChangeError:在某些类定义发生不兼容的类更改时发生,当前执行方法所依赖的某个类的定义已更改。
Android逆向第一步之开启root权限 最近看了一些Frida相关的文章,自己也想实际手动来几个逆向操作_。恰巧手头有一款小米8的Android手机(PS:听说是最容易能拿到Root权限的国产机),想着用个把小时搞一下。没到想看了很多文章最终还是搞了一下午。没有一篇文章能让我完完整整的操作下,此刻趟的坑的心情复杂至极,留一片文章淡化一下~!最后说一下root权限和电脑上的管理权限意向,软件获得root权限后,理论上讲可以在手机已安装的软件的权限范围内进行任何操作,记住是任何操作。不要轻易授予应用软件root权限。
JNI方法注册源码分析(JNI_OnLoad|动态注册|静态注册|方法替换) 文章指在学会使用JNI方法动态注册,静态注册,方法替换,且在这个过程中稍微了解一下`native`层的动态库加载,方法加载等知识。
非SDK接口自动化检测工具--veridex 在Android P版本,Google对非SDK接口增加了管控。Google提供了一个静态检测工具veridex,工具会扫描 APK 的整个代码库(包括所有第三方库),并报告发现的所有使用非 SDK 接口的行为。
aapt与aapt2--资源id固定和PUBLIC标记 目录前言AAPT概述资源CompileLink查看编译后的资源资源共享ids.xml概述public.xml概述资源id固定`aapt`进行`id`的固定`aapt2`进行`id`的固定R.txt转public.txtPUBLIC标记回顾思考动手实践参考:前言整片文章是围绕 tinker 的 TinkerResourceIdTask 里的知识点进行扩展的。aapt 和 aapt2 的差异(运行环境和运行结果);资源 id 的固定;进行 PUBLIC 的标记;aapt 运行环境为 gradl.
将构建配置从 Groovy 迁移到 KTS 将构建配置从 Groovy 迁移到 KTS前言作为Android开发习惯了面向对象编程,习惯了IDEA提供的各种辅助开发快捷功能。那么带有陌生的常规语法的Groovy脚本对于我来说一向敬而远之。Kotlin DSL的出现感觉是为了我们量身定做的,因为采用 Kotlin 编写的代码可读性更高,并且 Kotlin 提供了更好的编译时检查和 IDE 支持。名词概念解释Gradle: 自动化构建工具. 平行产品: Maven.Groovy: 语言, 编译后变为JVM byte code,