Android的Recovery中font_10x10.h字库文件制作

          任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上现成的,但font_10x18.h来历短暂的留存在脑子里边不如记下来,这样会有好处,比如要更改字体风格、更改字体大小、如果要求实现其它非英语语言,都会重新来研究这个!

先预览一下font_10x18.h:

 

struct {unsigned width;unsigned height;unsigned cwidth;unsigned cheight;unsigned char rundata[];
} font = {.width = 960,.height = 18,.cwidth = 10,.cheight = 18,.rundata = {
0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x55,0x82,0x06,0x82,0x02,0x82,0x10,0x82,
...........................................................................
0x84,0x3f,
0x00,}
};


文件中有几点:
① font 的结果体类型来历
② font 中各个元素值由谁决定的
一点一点来找答案!


一、
打开BMFont后,右边的列表是我的字体库,各种不同的字体。选中第一项"Latin+Latin Supplement".
①Options->Font Setting:

 


图中Size对应结构体中cwidth; 图中Height %对应结构体中cheigh占height的百分比。
②Options->Export Options:


图中Width对应结构体中width;图中Height对应结构体中height;
③Options->save bitmap font as..

 

 


然后输入导出的文件名tmp,文件类型默认选.fnt,然后就会发现导出路径多了一个tmp_0.png的文件,那就是字库图片资源。需要的是这个png文件。fnt文件并不是我们需要的!
二、
有了tmp_0.png是成功的一半,下面要用到ps的linux版本gimp。
①打开gimp,文件->打开 来打开tmp_0.png
②文件->导出 输出名字填tmp.c
③在弹出的"图像导出C源码"配置对话框做如下配置:


tmp.c到font.c就差一步了
三、
取出android源码中的mkfont.c(bootable/recovery/minui/),然后和tmp.c一起编译:
一起编译最好的方法是将tmp.c换成头文件tmp.h 然后mkfont.c中添加该头文件!然后gcc mkfon.c
./a.out > font.h
此时打开font.h就会font_10x18.h并无大的差别了。唯一的差别是rundata这个元素,这个是选用的不同字体会生成不同的内容。


综上所述,可以总结流程图:




1.《Android Recovery汉化》

      - http://img.zqr.cm/thread-61-1-1.html

2.《联想A298T专用recovery中文恢复系统》

      - http://bbs.anzhi.com/thread-8076669-1-1.html

3.《在andriod中加入充电指示》

      - http://blog.csdn.net/shuaiff/article/details/5581127

4.《Android 的GUI 系统》

      - http://www.cnblogs.com/Caiqinghua/archive/2010/08/03/1790900.html 

5.《charger代码分析(Android4.2)》

      - http://blog.csdn.net/u010223349/article/details/8822747

6.《android 电池(二):android关机充电流程、充电画面显示》

      - http://blog.csdn.net/xubin341719/article/details/8498580

7.《recovery汉化实现》 

      - http://blog.csdn.net/haomcu/article/details/8189760

8.《linux下gimp将图片另存为.c格式文本文件-之后加工存储 》 

      - http://blog.chinaunix.net/uid-20564848-id-73227.html

9.《Android系统Recovery工作原理之使用update.zip升级过程分析》 

      - http://blog.csdn.net/mu0206mu/article/category/1059752

10.《Cocos2d-x初入学堂(6)-->Bitmap Font generator位图字体工具》 

      - http://blog.csdn.net/aa4790139/article/details/8113197

11.《android 关机闹钟》 

      - http://blog.csdn.net/g_salamander/article/details/8487328

12.《Android recovery模式》 

      - http://www.2cto.com/kf/201206/137579.html

13.《android recovery模式及ROM制作》

      - http://www.cnblogs.com/xl19862005/archive/2012/03/23/2414109.html

 

 

转载于:https://www.cnblogs.com/pangblog/p/3265210.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 新建分支并切换到该分支_Git何谓分支

在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一…

linux用户恢复正常,Linux系统用户口令安全恢复方法

Linux系统用户口令安全恢复方法2007-09-07eNet&Ciweek有许多原因可能导致用户口令的遗失,这对系统管理员而言,可能不是一个问题,只要以root账号登录,再用passwd命令更改用户口令就可以了。可是,如果丢失的是root口…

A20 init.sun7i.rc 文件

如果需要在开机的时候,自动加载一些ko文件,或者通过chmod修改一些设备文件的属性,都可以再 init.sun7i.rc文件中添加insmod和chmod命令来实现。 init.sun7i.rc文件在 android4.2/out/target/product/wing-mbox230/root目录下。 但是实际操…

python 多元线性回归的系数检验 t p值_多元线性回归检验t检验(P值),F检验,R方等参数的含义...

做线性回归的时候,检验回归方程和各变量对因变量的解释参数很容易搞混乱,下面对这些参数进行一下说明:1.t检验:t检验是对单个变量系数的显著性检验 一般看p值; 如果p值小于0.05表示该自变量对因变量解释性很强。2…

linux c 内存elf,gcc加入linux ELF有什么功能?

这些大多数是在“主”程序本身之前或之后执行代码的各种方法,大多数都在crtstuff.c(https://github.com/gcc-mirror/gcc/blob/master/libgcc/crtstuff.c)中.它们存在以支持各种C类编程语言的特征,但它们也可以在C中访问.这可能似乎过于复杂,因为其中一些代表了传统的行李,还有一…

hdu 4322 最大费用流

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4322 #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> #include <queue> #include <vector> using namespace s…

es6遍历树结构并判断_ES6和ES5中数据结构的遍历

看了ES6就感觉各种数据结构的遍历方法好多好混乱&#xff0c;就写下来总结下&#xff0c;看看应用场景上有什么区别Array:ES5:(1)Array.prototype.forEach(function(item,index,array){...})(2)Array.prototype.map(function(value,index,array){...//return value,该值会被插入…

EAT/IAT Hook

标 题: EAT/IAT Hook 作 者: Y4ng 时 间: 2013-08-21 链 接: http://www.cnblogs.com/Y4ng/p/EAT_IAT_HOOK.html #include <windows.h> #include <shlwapi.h> #include <wchar.h> DWORD MyZwGetContextThread(HANDLE Thread,LPCONTEXT lpContext) {memset(l…

wireshark过滤规则

1.过 滤 IP&#xff0c;如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP2.过滤 端 口例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port 80tcp.port eq 2722tc…

springboot 别名不起作用_springboot之mybatis别名的设置

mybatis别名设置在具体的mapper.xml文件中&#xff0c;定义很多的statement&#xff0c;statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。一.mybatis默认支持别名别名映射的类型_bytebyte_longlong_shortshort_intint_integerint_double…

Linux 编译 libc log,在Android的源码中添加LOG

想在Opencore代码中添加打印信息&#xff0c;但是使用OpenCore自带的PVLOGGER&#xff0c;有一定的局限&#xff0c;因为只能在创建对象调用相应的ThreadLogon()后才能使用。所以不能实现在任何函数中添加。于是通过添加Log.h的方法来添加。首先转下别人的经验我试了下还是出先…

《哈佛幸福课》笔记

前言&#xff1a;幸福感是衡量人生的唯一标准&#xff0c;是所有目标的最终目标 积极心理学 第一课 什么是积极心理学 与缺乏实质内容的心理自助行动不同&#xff0c;积极心理学从学术界而来&#xff0c;有着严谨的学术内容&#xff0c;并且兼顾应用到生活的方方面面&#xff…

ubuntu修改用户名、计算机名、主目录名

今天是MPI并行程序设计这门课交作业的截止日期&#xff0c;我们寝室的张佳和刘庆的本科同学来了&#xff0c;所以他们也没有时间搞&#xff0c;我就又做一回好人吧&#xff01;帮他们搞一下&#xff01;帮他们写报告的过程中最主要的问题就是跑那个MPI的程序&#xff0c;因为我…

linux redis可视化工具,几款开源的图形化Redis客户端管理软件

Redis是一个超精简的基于内存的键值对数据库(key-value)&#xff0c;一般对并发有一定要求的应用都用其储存session&#xff0c;乃至整个数据库。 它自带一个最小化的命令行式的数据库管理工具&#xff0c;有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具…

ubuntu 修改用户名和计算机名称

修改用户名 sudo chfn -f 新名字 原名字 sudo usermod -l 新名字 -d /home/新名字 -m 原名字 sudo groupmod -n 新名字 原名字 修改计算机名 /etc/hosts /etc/hostname

linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书&#xff0c;回复「学习路线」获取超详细后端技术学习路线思维导图&#xff0c;文章每周持续更新&#xff0c;我们下期见&#xff01;大家好&#xff0c;我是柠檬哥。分享编程学习&#xff0c;助力程序员成长…

nginx源码分析—模块及其初始化

Content 0. 序 1. nginx有哪些模块&#xff1f; 2. nginx如何描述这些模块&#xff1f; 2.1 模块数据结构 2.1.1 ngx_module_t结构 2.1.2 ngx_command_t结构 2.2 模块类图 3. nginx如何组织这些模块&#xff1f; 3.1 全局数组ngx_modules 3.2 模块组织结构图 4. nginx的模块种类…

PostgreSQL的Checkpoint 发生的时机

磨砺技术珠矶&#xff0c;践行数据之道&#xff0c;追求卓越价值 回到上一级页面&#xff1a;PostgreSQL基础知识与基本操作索引页 回到顶级页面&#xff1a;PostgreSQL索引页 官方说明来自&#xff1a; http://www.postgresql.org/docs/9.2/static/runtime-config-wal.html…

linux 网络相关,Linux系统管理员必备的21个网络相关监控

Linux系统管理员必备的21个网络相关监控1. ntopngntopng 是 ntop 的升级版&#xff0c;它提供了一个能通过浏览器进行网络监控的图形用户界面。它还有其他用途&#xff0c;如&#xff1a;地理定位主机&#xff0c;显示网络流量和 ip流量分布并能进行分析。2. iftopiftop 类似于…

sqlite sqlite3_bind_int sqlite3_bind_text

sqlite3_bind_int sqlite3_bind_text 这两个函数给“准备语句”绑定参数。其中函数的第二个参数是绑定参数的编号。 此编号是从1开始&#xff0c;而不是从0开始。 查看sqlite3的源码&#xff0c;可以看到这两个函数都调用了 vdbeUnbind 函数。 查看vdbeUnbind函数&…