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口…

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…

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

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

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

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

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

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

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的模块种类…

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

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

固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?

用认真的态度与专业的情怀倾注于存储&#xff0c;欢迎关注我&#xff0c;与我交流哦&#xff01;我们常用的电脑系统主要是Windows和Linux&#xff0c;其中&#xff0c;Windows系统中常用的文件系统主要是FAT和NFTS&#xff0c;FAT是旧Windows和U盘用的较多&#xff0c;最新Win…

java二维数组数字数显次数_【每日一题】118.数组中数字出现的次数

关注我们获取更多计算机考研信息? 今日习题在一个数组 nums 中除一个数字只出现一次之外&#xff0c;其他数字都出现了三次。请找出那个只出现一次的数字。示例 1&#xff1a;输入&#xff1a;nums [3,4,3,3]输出&#xff1a;4示例 2&#xff1a;输入&#xff1a;nums [9,1,…

微软的转型中?

北京时间8月23日夜&#xff0c;微软在其官网上发表新闻称&#xff0c;微软首席执行官Steve Ballmer将在12个月内退休。 微软在这篇《微软CEO Steve Ballmer将在12个月内退休》新闻中表示&#xff0c;其首席执行官Steve Ballmer已决定将在12个月内退休&#xff0c;尤其是当新的首…

k均值的损失函数_一种基于均值不等式的Listwise损失函数

1 前言1.1 Learning to Rank 简介Learning to Rank (LTR) , 也被叫做排序学习, 是搜索中的重要技术, 其目的是根据候选文档和查询语句的相关性对候选文档进行排序, 或者选取topk文档. 比如在搜索引擎中, 需要根据用户问题选取最相关的搜索结果展示到首页. 下图是搜索引擎的搜索…

HBase 集群搭建

文章目录 安装前准备兼容性官方网址 集群搭建搭建 Hadoop 集群搭建 Zookeeper 集群解压缩安装配置文件高可用配置分发 HBase 文件 服务的启停启动顺序停止顺序 验证进程查看 Web 端页面 安装前准备 兼容性 1&#xff09;与 Zookeeper 的兼容性问题&#xff0c;越新越好&#…

在哪个Linux发行版上运行python,怎么在linux上运行python

Linux默认是已经安装好了Python程序目前来说&#xff0c;大多数的Linux发行版是安装了两个版本的Python程序一个是Python 2.x一个是Python 3.x一些系统自带的程序文件需要Python 2的支持&#xff0c;另外Python 3又是大势所趋所以&#xff0c;我们最好不要动系统的Python版本需…

职场上个人的核心技术_职场上,这3种人表面老实,实际却是个“高手”,要远离...

职场上&#xff0c;这3种人表面老实&#xff0c;实际却是个“高手”&#xff0c;要远离&#xff01;在职场生活中&#xff0c;每一步都需要走好&#xff0c;因为你不慎走错了一步也就可能满盘皆输。而公司里面也有一种比较特殊的情况&#xff0c;也就是有这么3种类型的人&#…

linux编程参数列表,Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)...

一. 概述linux安全系统的核心是用户账户。 创建用户时会分配用户ID(UID)。 UID是唯一的&#xff0c;但在登录系统时不是用UID&#xff0c;而是用登录名。在讲文件权限之之前&#xff0c;先了解下linux是怎样处理用户账户的。以及用户账户需要的文件和工具&#xff0c;这样处理文…

GitHub托管BootStrap资源汇总(持续更新中…)

Twitter BootStrap已经火过大江南北&#xff0c;对于无法依赖美工的程序员来说&#xff0c;这一成熟前卫的前端框架简直就一神器&#xff0c;轻轻松松地实现出专业的UI效果。GitHub上相关的的开源项目更是层出不穷&#xff0c;在此整理列举一些感觉不错的组件或增强实现&#x…

aix linux运维,运维老司机分享的八个AIX日常运维经验及案例

原文来自微信公众号&#xff1a;AIX专家俱乐部【经验分享】在AIX启动时&#xff0c;打开debug模式经常遇到aix无法启动&#xff0c;但又不知道pending在哪&#xff0c;因此打开启动过程的debug模式&#xff0c;对于诊断问题有很大的帮帮助。下面是打开debug的方法&#xff1a;打…

php 区块链算法_PoW/BFT等5种主流区块链共识算法的开源代码实现

共识算法是实现自主产权区块链的必不可少的关键环节&#xff0c;本文列出社区中相对成熟的区块链共识算法开源实现&#xff0c;包括BFT共识、Raft共识、Paxos共识、PoW共识等&#xff0c;可供希望开发自主产权区块链的团队参考学习。相关推荐&#xff1a;区块链开发系列教程1、…