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
Android的Recovery中font_10x10.h字库文件制作的更多相关文章
- init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...
- Android应用开发中webview上传文件的几种思路
1. 常规方法,重写WebChromeClient 的 openFileChooser 方法 private class MyWebChromeClient extends WebChromeClie ...
- Android源码分析(十一)-----Android源码中如何引用aar文件
一:aar文件如何引用 系统Settings中引用bidehelper-1.1.12.aar 文件为例 源码地址:packages/apps/Settings/Android.mk LOCAL_PAT ...
- android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题
1 若把APK文件保存到应用程序的files目录下,则一定注意保存时使用 FileOutputStream os = openFileOutput(fileName, MODE_WORLD_READA ...
- Android 开发Project中各个目录和文件的介绍
如上图标号: 存放java文件的文件夹“src”: 由aapt工具根据应用中的资源文件自动生成的R.java文件,以及buildConfiger.java文件,这两个文件最好不要去修改: 存放各种资源 ...
- 关于Android的hellowrd中出现的r文件错误
当你的androidAPI 由2.1版本更换成2.2版本时:res/vavlues/styles.xml中使用的android:WindowTitle会报以下异常,error: Error retri ...
- The Independent JPEG Group's JPEG software Android源码中 JPEG的ReadMe文件
The Independent JPEG Group's JPEG software========================================== README for rele ...
- android基础知识13:AndroidManifest.xml文件解析
注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- android在ubuntu中编译为.apk资料
android在ubuntu中编译为.apk文件 今天我在ubuntu环境之下将android程序编译为.apk文件,特将其过程写下来: 1. 在windows环境下使用MyEclipse编辑好and ...
随机推荐
- LINQ Enumerable 续 II
Enumerable.TakeWhile和Enumerable.SkpWhile Enumerable.TakeWhile和Enumerable.SkpWhile将通过判断条件,来获取和跳过序列. T ...
- XML数据的读取—数据库配置文件
数据库配置文件(config.xml) <?xml version="1.0" encoding="utf-8"?> <configurati ...
- css的clip裁剪
clip 属性是用来设置元素的形状.用来剪裁绝对定位元素(absolute or fixed). clip有三种取值:auto |inherit|rect.inherit是继承,ie不支持这个属性, ...
- Redhat Enterprise 5.4下安装配置Oracle 11g R2详细过程
1.Linux环境配置准备 环境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安装到/home/oralce_11目录下. 配置过程如 ...
- RMAN-06496: must use the TO clause when the database is mounted or open
一:问题描述 备份控制文件时报错: RMAN> restore controlfile from '/home/oracle/backup/PROD_32_20140829.bak'; Star ...
- 你好,C++(27)在一个函数内部调用它自己本身 5.1.5 函数的递归调用
5.1.5 函数的递归调用 在函数调用中,通常我们都是在一个函数中调用另外一个函数,以此来完成其中的某部分功能.例如,我们在main()主函数中调用PowerSum()函数来计算两个数的平方和,而在P ...
- asp.net能不托管吗?
弱弱地问一句,整个部署在IIS中的asp.net项目能不托管吗? 或者说有没有用纯粹的非托管语言(比方说C语言)写的非托管asp.net项目?
- js 跨浏览操作
/* 跨浏览器添加事件绑定 obj : 需要绑定js时间的对象 type: 欲绑定的事件类型,如:click ,mounseover 等事件 不需要添加on fn : 触发的脚本*/func ...
- 你不知的IE的bug及其解决方案
E令人咬牙切齿的bug不胜枚举,其中IE6更是臭名昭著,令人发指.这里总结出IE下最为严重的5个bug,及其应对方案. 1.IE6下无法显示png格式的透明信息 这个bug是众多网页设计师的噩梦,虽然 ...
- d3可视化实战03:神奇的superformula
需求驱动实现 前文讲过了D3的数据驱动机制,中间所举的例子都很简单.例如那个demo里面,绑定的数据是一个简单的数组,实现的图元也仅仅是一堆用SVG画的circle.但是现实世界中我们往往会遇到复杂的 ...