任务是要汉化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_10x18.h字库文件制作相关推荐

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

    任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上 ...

  2. Android程序暂停sh,init进程 解析Android启动脚本init.rc 修改它使不启动android init.rc中启动一个sh文件...

    Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径: system/core/init,编 ...

  3. 文件 单片机_单片机C语言编程中reg52.h头文件的作用

    前言:本人出于爱好将不定期发送电气电工.前端.单片机等内容,可能会无法顾及关注我的所有人需求,请大家按需收藏自己想要知识,有用则收之,无用则弃之,不系统更新,仅供零星学习O(∩_∩)O哈哈~ 在代码的 ...

  4. Android源码分析(十一)-----Android源码中如何引用aar文件

    一:aar文件如何引用 系统Settings中引用bidehelper-1.1.12.aar 文件为例 源码地址:packages/apps/Settings/Android.mk LOCAL_PAT ...

  5. android下载zip到assets,Android将assets中的zip压缩文件解压到SD卡

    程序首先要获取写外部存储权限: 程序: package com.hu.andstar; import java.io.File; import java.io.FileOutputStream; im ...

  6. Android—在WebView中下载Blob协议文件

    之前有个需求是要下载Blob协议的gif,让我苦恼了好久.平时下载http协议的文件时直接获取输入流即可,但是Java无法获得Blob协议的文件流,无法直接处理.不过JavaScript处理Blob协 ...

  7. 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )

    文章目录 一.从 Android 应用数据目录中拷贝 SQlite3 数据库文件 二.使用 DB Browser 工具打开 SQlite3 数据库文件 一.从 Android 应用数据目录中拷贝 SQ ...

  8. android基础知识13:AndroidManifest.xml文件解析【转载】

    注:本文转载于:http://blog.csdn.NET/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  9. c语言头文件格式图片_c语言中的.h头文件的格式

    #ifndef __digital_h__ #define __digital_h__ #ifndef __cplusplus extern "C"{ #endif #ifdef  ...

最新文章

  1. 常用的正则表达式(持续更新。。)
  2. PHP 1:在Windows上安装和配置PHP,Apache和My SQL
  3. Qt中rcc工具简介
  4. 如何手动删除一个business document和pricing document的relationship
  5. c 语言银行排队系统,C++实现银行排队系统
  6. java-前端之js
  7. 17. --cover-- 覆盖掩盖 (词19)
  8. VC++ 设置桌面壁纸
  9. [Spark中移动平均法的实现]
  10. 量化投资学习——股指期货研究(五)
  11. linux光盘引导项,Linux制作grub引导光盘
  12. Outlook 与企业微信邮箱通讯录同步
  13. 文章瞎读 TOLDI: An effective and robust approach for 3D local shape description 2016
  14. 药店不停业盘点操作流程,海典盘点机PDA操作使用说明
  15. android 百度地图大头针,百度地图API 地理位置获取和大头针显示当前位置
  16. 强化学习笔记3-Python/OpenAI/TensorFlow/ROS-规划博弈
  17. 【Android基础知识】选项菜单、上下文菜单、子菜单的使用
  18. c刊计算机领域见刊快的期刊,见刊最快的医学核心期刊有哪些
  19. nginx配置文件nginx.conf超详细讲解
  20. 第三组第一次团队会议

热门文章

  1. 全球No.1集装箱人工智能企业中国上海人工智能领军企业CIMC中集飞瞳,已完成百万AI集装箱箱况残损检验识别,上亿集装箱信息识别
  2. 为技术解开枷锁的那个人走了
  3. 学计算机好还是警校好,上警校好还是普通大学好?上警校有的好处在哪?
  4. 读《读大学,究竟读什么》读后感
  5. python微软雅黑_matplotlib中文显示-微软雅黑
  6. 商人的诀窍-(贪心出问题最多的-快排函数错)
  7. 分布式锁,redisson是如何解决死锁问题
  8. Compose 学习笔记(一)—— Compose 初探
  9. Robot Global新世纪的数字货币理财
  10. 共享计算机后防火墙能开启,360防火墙在哪里设置 如何打开或关闭【图解】