前言我们在平时的开发过程中,会经常遇到产品需求的变更或者出现bug; 在传统的模式中,我们需要首先需要修改代码,然后重新打包Apk再上线,用户在打开应用的时候就会进行更新了但是这种模式有几个缺点:一是上线周期长,从修改代码到用户更新需要较长的时间,二是用户更新代价较大,每次用户更新都需要下载整个Apk包; 整个Apk包包括了一个应用的所有代码,要消耗用户较多的流量,并且,如果是一些重要的更新,为了
转载
2024-08-03 12:59:42
169阅读
目录前文回顾前言入口WifiNative初始化打开WIFIIWifiChipIWifiCondISupplicant 前文回顾WIFI学习笔记 - Framework (1)WIFI学习笔记 - Framework (2)前言基于Android P源码学习;代码片为了方便阅读段经过删、裁减,请以实际源码为准;入口根据前两篇的分析结果,调用栈都汇聚到了WifiNative:打开Wifi:mWifi
转载
2024-10-31 20:05:27
114阅读
文章目录准备环节克隆kvm主线代码准备编译环境编译前需了解的知识查看make支持命令编译步骤编译内核拷贝当前内核的配置文件编译bzImage编译modules安装新内核安装模块检查默认引导内核 准备环节克隆kvm主线代码这部分有两个办法一个是直接克隆代码,适合能翻墙的用户,另外一种是从国内网站克隆kernel主线之后更新kvm主线的代码改动,本文使用第二种方式演示,第一种更简单但网络要求极高克隆
转载
2023-12-11 13:10:41
1968阅读
去年面试口碑时,遇到过这样一个问题,Java中类的加载机制?长期Android开发,把最基础的Java都忘记了......意识到这点,我就在网上查找相关知识回顾学习,如今开始整理之前的笔记,现把它分享出来,留作记录!一、Java中类的加载机制: 类的加载,就是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建
文章目录1. 介绍2. 使用2.1 工程build.gradle2.2 模块build.gradle2.3 增加tinker.gradle2.4 增加相关java代码2.5 修改AndroidManifest.xml2.6 修改MainActivity3. 打包4. 打补丁包5. 代码6. 参考资料 1. 介绍Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资
转载
2023-08-10 02:10:13
300阅读
此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection: 如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全局变量,zygote中的对象(class loader加载)等,然后开始对heap进行遍历。到
Linux内核(Kernel)是操作系统最核心的部分,它作为操作系统的基础,负责管理计算机的内存、文件系统、设备驱动程序等核心功能。在Linux系统中,内核模块(Kernel Module)是可以动态加载到内核中的一组代码,它们用于扩展Linux内核的功能,增加新的驱动程序或功能以便适应各种硬件设备和应用程序的需求。加载内核模块的过程通常使用insmod、modprobe或者rmmod等命令进行控
原创
2024-03-11 12:06:40
367阅读
Linux是一款开源操作系统,拥有众多的功能和特点。在Linux系统中,有一种特殊的文件格式叫做“.ko”文件,它是一种模块化的内核对象文件,用于加载设备驱动和扩展内核功能。
当我们在Linux系统中安装新硬件或者需要使用新的功能时,通常会遇到需要加载“.ko”文件的情况。在Linux中,加载“.ko”文件的方法非常简单,只需要通过命令行来执行即可。
在Linux系统中,加载“.ko”文件可以
原创
2024-03-20 09:34:29
450阅读
Android GKI详解
Android GKI(Generic Kernel Image)是一个围绕Android的Linux内核的关键进展。它的设计旨在简化设备的内核更新和增强Android的可移植性。接下来我将详细阐述如何一步步解决与Android GKI相关的技术问题,包括环境准备、分步指南、配置详解、验证测试、排错指南和扩展应用等内容。
## 环境准备
在开始之前,必须安装必要的
android7.1编译第三方apk到系统中的android.mk学习 基于packages/apps/Browser/Android.mk文件内容,如下:LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SWEBrowser
LOCAL_MODULE_TAGS := optional
LOCAL_MODU
本文译自:http://developer.android.com/training/cloudsync/gcm.html谷歌的云消息(GCM)是一个用于给Android设备发送消息的免费服务。GCM能够极大的提高用户的体验。你的应用程序会保持最新的状态,而不用担心因唤醒无线信号所造成的电池电量的浪费,也不用使用轮询来询问服务器是否有更新。还有,GCM允许把一个单一的消息绑定到1000个接收端,这
转载
2024-03-13 17:43:45
115阅读
systemd介绍 systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit
引言记录下PKMS初始化时xml文件和apk安装时的解析类。1.frameworks/base/services/core/java/com/android/server/pm/Settings.java// Settins文件 data/system/packages.xml
private final File mSettingsFilename;
//这个文件不一定存在,是备份文件,如果存
转载
2024-07-30 11:49:16
118阅读
Application.mk:本文介绍Application.mk构建文件,此文件用于描述应用需要的原生模块。 模块可以是静态库、共享库或可执行文件。建议在阅读本页之前先阅读概念和Android.mk页面。这样有助于您最深入地了解本页的内容。
概览:Application.mk文件实际上是定义要编译的多个变量的微小GNU Makefile片段。它通常位于$PROJECT/jni/
转载
2023-09-07 19:29:01
0阅读
1.3 Android源码下载和编译Android源码的开发需要Linux环境,读者可以安装Ubuntu 10.04及其后续版本,推荐安装Ubuntu的10.04或者12.04这两个LTS(长期技术支持)版本。本书基于Jelly Bean(Android 4.1)分析源代码,该部分源代码的编译需要64位操作系统环境。本节将介绍如何在Ubuntu 12.04(LTS)-64bit上搭建Android
chatgpt告诉我的,真的厉害: 是Android AOSP中的GKI跟KMI 抱歉,我理解错了你的问题。在Android AOSP中,GKI和KMI分别代表以下概念:GKI(Generic Kernel Image)是一种可裁剪的内核映像,旨在提供通用的硬件支持和最小化内核大小,以使它能够适用于尽可能多的设备和硬件平台。GKI的目标是在最小化设备上的代码量的同时,保持设备兼容性和更
转载
2023-10-25 20:24:48
47阅读
在Linux系统中,CSI(Common System Interface)是一种用于驱动程序开发的标准接口,而KO文件则是表示Linux内核模块的文件扩展名。在Linux系统中加载KO文件可以实现对硬件设备的驱动和功能的扩展,保证系统的稳定性和性能优化。
在Linux系统中,KO文件的加载是通过insmod、modprobe或者/sbin/modinfo等命令进行的。当一个KO文件被加载到内核
原创
2024-05-27 11:26:27
139阅读
在FPGA开发中,COE文件和MIF文件是常用的存储器初始化文件。COE文件和MIF文件都用于导入存储器ROM或RAM的存储数据,但是它们的格式和语法有些不同。本文将介绍COE文件和MIF文件的使用方法。一、COE文件COE文件是一种常用的存储器初始化文件格式,常用于Xilinx Vivado软件中。COE文件可以包含对存储器内容的初始化值以及一些元数据信息。COE文件主要由两个部分组成:第一部分
转载
2024-10-09 11:39:41
90阅读
学更好的别人,做更好的自己。——《微卡智享》本文长度为6237字,预计阅读11分钟前言现在Android开发App基本都开始用组件化的架构了,要实现跨组件的Activity跳转,就需要用到了路由,本篇主就要是介绍了一下在Kotlin中使用ARouter实现组件化架构,然后加入了DataStore来替代SharePreference保存本地数据,完整的Demo也会在文章最后贴上地址,结合前面《And
一、android.mk简介android.mk文件为android ndk描述了你c/c++源文件。写一个android.mk文件是为了向生成系统描述你的源代码。android.mk是GNU Makefile的一小部分,会被生成系统解析一次或多次,用来对android程序进行编译,因为所有的编译文件都在同一个GNU MAKE执行环境中进行执行,而android.mk中所有的变量都是全局的,因此,
转载
2024-01-09 19:37:48
493阅读