Android Framework 全局替换系统字体

这篇具有很好参考价值的文章主要介绍了Android Framework 全局替换系统字体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Android 11 Android Framework 全局替换系统字体

第一种通过替换系统默认字体

  1. 将需要替换的字体资源放置frameworks/base/data/fonts/目录下。

  2. 将系统默认的Roboto字体替换为HarmonyOs字体。

frameworks/base/data/fonts/fonts.xml

Android Framework 全局替换系统字体,android,frameworks,系统字体

  1. frameworks/base/data/fonts/Android.mk
font_src_files :=\
    #	新增字体资源需配置
  	...
	HarmonyOs_***.ttf
	...
	...
  1. frameworks/base/data/fonts/fonts.mk
 PRODUCT_PACKAGES := \

    #	新增字体资源需配置
  	...
	HarmonyOs_***.ttf
	...
	...

编译刷机验证。

第二种通过动态修改Typeface.java

frameworks/base/graphics/java/android/graphics/Typeface.java

  • 新增一个SystemProperties属性 persist.sys.customfont
    在系统启动期间,判断该属性是否有值存在,如果有的话,将其设置为默认字体
    Android Framework 全局替换系统字体,android,frameworks,系统字体
  • 应用程序修改:
setProp("persist.sys.customfont", fontPath);

public static void setProp(String key, String value) {
    try {
        Class<?> c = Class.forName("android.os.SystemProperties");
        Method set = c.getMethod("set", String.class, String.class);
        set.invoke(c, key, value );
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  • 通过adb命令修改:
    Android Framework 全局替换系统字体,android,frameworks,系统字体

编译刷机验证。

查看对比效果
Android Framework 全局替换系统字体,android,frameworks,系统字体
Android Framework 全局替换系统字体,android,frameworks,系统字体文章来源地址https://www.toymoban.com/news/detail-654949.html

到了这里,关于Android Framework 全局替换系统字体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hal深入剖析之aidl实战-android framework车机车载手机系统开发

    这个是hal工程根目录 接下来要创建aidl的文件存放目录 注意mkdir -p android/hardware/mytest其实就是包名目录,即模块包名就是android.hardware.mytest. 提示:这个如果为了项目的更加好的维护性建议到自己项目目标的vendor下面进行,目前只是为了演示方便,直接在system的hardware下面 创建

    2024年02月19日
    浏览(49)
  • 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程

    第一篇 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动 第二篇 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程 上一篇文章深入探索了 Android Framework 的输入系统 IMS 的构成与启动,对 IMS 的重要成员有了初步的理解,然后通过源码对 IMS 的整个启动流程进行

    2024年01月20日
    浏览(45)
  • android framework-Pixel3真机系统内置第三方apk实战

    ./make/target/product/mainline_arm64.mk 这个是系统应用的配置 ./make/target/product/handheld_product.mk 这个就是我们要配置的文件 在下面添加我们新增的 1、source build/envset.sh 2、lunch并且选择对应的product 3、make 4、adb devices(检查设备是否连接) 5、adb reboot bootloader(重启设备,进入fastboot状态)

    2024年02月12日
    浏览(63)
  • android多屏触摸相关的详解方案-安卓framework开发手机车载车机系统开发课程

    直播免费视频课程地址:https://www.bilibili.com/video/BV1hN4y1R7t2/ 在做双屏相关需求开发过程中,经常会有对两个屏幕都要求可以正确触摸的场景。但是目前我们模拟器默认创建的双屏其实是没有办法进行触摸的 静态修改方案 使用命令查看display2即副屏的信息情况 adb shell dumpsys d

    2024年02月11日
    浏览(51)
  • Android Framework层开发

    查看源码工具: SourceInsight Instrumentation :可以理解为ActivityThread的一个工具类,在ActivityThread中初始化,一个进程只存在一个Instrumentation对象,在每个Activity初始化时,会通过Activity的Attach方法,将该引用传递给Activity。Activity所有生命周期的方法都有该类来执行。 Init进程(pi

    2024年02月04日
    浏览(44)
  • 【Android】Android Framework系列---CarPower电源管理

    智能座舱通常包括中控系统、仪表系统、IVI系统 、后排娱乐、HUD、车联网等。这些系统需要由汽车电源进行供电。由于汽车自身的特殊供电环境(相比手机方便的充电环境,汽车的蓄电池如果没有电是需要专业人士操作的),其电源状态会比较复杂,既要满足车内的座舱系统

    2024年02月07日
    浏览(47)
  • 【Android Framework (八) 】- Service

    1,挂载文件系统,创建文件目录 调用selinux_setup权限安全相关 2,初始化内存空间 初始化属性服务 创建Epoll 注册监听子进程重启异常操作等,对子进程进行线程守护 3,startPropertyServic 开启属性服务 进行监听 4,LoadBootScripts 加载init.rc文件 进行解析 调用do_class_start 文件开启

    2024年02月01日
    浏览(37)
  • Android Framework 之 启动流程

    Android 系统的启动流程 Android 系统的启动流程可以分为以下几个主要步骤: 引导加载器(Bootloader)启动 :当你打开一个 Android 设备时,首先启动的是引导加载器。引导加载器负责启动 Android 的核心操作系统。 Linux 内核启动 :引导加载器加载并启动 Linux 内核。Linux 内核负责

    2024年02月14日
    浏览(36)
  • Android Framework 之 SystemServer

    SystemServer是Android系统中的一个核心组件,负责启动和管理许多重要的系统服务。它的启动过程相对复杂,包含以下主要步骤: Zygote启动SystemServer :在Android系统启动过程中,Zygote进程会通过fork操作创建一个新的进程,并在这个新的进程中启动SystemServer。 加载并执行SystemSer

    2024年02月14日
    浏览(37)
  • Android Framework 之 ServiceManager

    ServiceManager 在 Android 系统中扮演了核心的角色。主要负责跨进程通信(IPC)的管理和服务的注册与查找。 管理系统服务 : ServiceManager 提供一个全局的服务注册表,用于存储所有的系统服务。一个服务一旦被注册到 ServiceManager,其他的进程就可以通过 **ServiceManager **来访问这

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包