1.ImageMagick支持格式
2.windows系统文件中各种扩展名分别是析源析什么意思?
3.OpenHarmony 3GPP协议开发深度剖析——一文读懂RIL
ImageMagick支持格式
ImageMagick支持超过种格式,包括A,码h码解 ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX, FRACTAL, G, G3, GIF, GIF, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, OTB, P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG, PNG, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV。
在许多服务器上,析源析甚至个人站点都提供了ImageMagick的码h码解下载。推荐访问ImageMagick的析源析官方主页获取最新版本的源码包。以ImageMagick-5.5.6.tar.gz为例,码h码解烈焰遮天全套完整源码Linux安装步骤如下:
首先解压源码包:tar zxvf ImageMagick-5.5.6.tar.gz
进入解压后的析源析目录:cd ImageMagick-5.5.6
配置安装:./configure
编译安装:make all
以超级用户身份安装:su 或 sudo(在Debian/Ubuntu系统上直接执行sudo aptitude install imagemagick即可安装)
安装后,记得将函数库目录添加到/etc/profile文件中的码h码解LD_LIBRARY_PATH环境变量,同时确保在/etc/ld.so.conf中包含该路径,析源析并运行ldconfig以确保应用能正确找到ImageMagick库,码h码解避免出现运行问题。析源析
windows系统文件中各种扩展名分别是码h码解什么意思?
常见文件扩展名和它们的说明
A
ACE:Ace压缩档案格式
ACT:Microsoft office助手文件
AIF,AIFF:音频互交换文件,析源析Silicon Graphic and Macintosh应用程序的码h码解声音格式
ANI:Windows系统中的动画光标
ARC:LH ARC的压缩档案文件
ARJ:Robert Jung ARJ压缩包文件
ASD:Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming
format,ASF)的析源析描述文件;可用NSREX打开 Velvet Studio例子文件
ASF:Microsoft高级流媒体格式文件
ASM:汇编语言源文件,Pro/E装配文件
ASP:动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
AST:Astound多媒体文件;ClarisWorks“助手”文件
Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取-的数字)
A3L:Authorware 3.x库文件
A4L:Authorware 4.x库文件
A5L:Authorware 5.x库文件
A3M,A4M:Authorware Macintosh未打包文件
A3W,检测源码jsA4W,A5W:未打包的Authorware Windows文件
B
BAK:备份文件
BAS:BASIC源文件
BAT:批处理文件
BIN:二进制文件
BINHex:苹果的一种编码格式
BMP:Windows或OS/2位图文件
BOOK:Adobe FrameMaker Book文件
BOX:Lotus Notes的邮箱文件
BPL:Borlard Delph 4打包库
BSP:Quake图形文件
BUN:CakeWalk 声音捆绑文件(一种MIDI程序)
C
C0l:台风波形文件
CAB:Microsoft压缩档案文件
CAD:Softdek的Drafix CAD文件
CAM:Casio照相机格式
CAP:压缩音乐文件格式
CAS:逗号分开的ASCⅡ文件
CCB:Visual Basic动态按钮配置文件
CCH:Corel图表文件
CCO:CyberChat数据文件
CCT:Macromedia Director Shockwave投影
CDA:CD音频轨道
CDF:Microsoft频道定义格式文件
CDI:Philip的高密盘交互格式
CDM:Visual dBASE自定义数据模块文件
CDR:CorelDRAW绘图文件;原始音频CD数据文件
CDT:CorelDRAW模板
CDX:CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
CFG:配置文件
CGI:公共网关接口脚本文件
CGM:计算机图形元文件
CH:OS/2配置文件
CHK:由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
CHM:编译过的HTML文件
CHP:Ventura Publisher章节文件
CHR:字符集(字体文件)
CHT:ChartViem文件;Harvard Graphics矢量文件
CIF:Adaptec CD 创建器 CD映像文件
CIL:Clip Gallery下载包
CIM:SimCity 文件
CIN:OS/2改变控制文件用于跟踪INI文件中的变化
CLASS:Java类文件
CLP:Windows 剪贴板文件
CLL:Crick Software Clicker文件
CLS:Visual Basic类文件
CMD:Windows NT,OS/2的命令文件;DOSCD/M命令文件;dBASEⅡ程序文件
CPI:Microsoft MS-DOS代码页信息文件
CPL:控制面板扩展名,Corel颜色板
CPP:C++代码文件
CPR:Corel提供说明书文件
CPT:Corel 照片-绘画图像
CST:Macromedia Director Cast文件
CUR:Windows光标文件
D
DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel
打开);Oracle8.1.x表格空间文件
DBX:DataBearn图像;Microsoft Visual FoxPro表格文件
DCT:Microsoft Visual FoxPro数据库容器
DCU:Delphi编译单元文件
DCX:Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
DIR:MacromediaDirector文件
DLL:动态链接库
DOC:FrameMaker或FrameBuilder文档;Word Star文档、Word
Perfect文档、Microsoft:Word文档;DisplayWrite文档
DOT:Microsoft Word文档模板
DPL:BorlandDelph 3压缩库
DRV:驱动程序
DRW:Micrografx Designer/Draw;Pro/E绘画文件
DSF:Micrografx Designer VFX文件
DSG:DOOM保存的文件
DSM:Dynamic Studio音乐模块(MOD)文件
DSP:Microsoft Developer Studio工程文件
DSQ:Corel QUERY(查询)文件
DST:刺绣机图形文件
DSW:Microsoft Developer Studio工作区文件
DTA:World Bank(世界银行)的STARS数据文件
DTD:SGML文档类型定义(DTD)文件
DTED:地面高度数字数据(图形的数据格式)文件
DTF:Symantec Q&A相关的数据库数据文件
DTM:DigiTrakker模块文件
DUN:Microsoft拔号网络导出文件
DV:数字视频文件(MIME)
DWG:AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
DXR:Macromedia Director受保护(不可编辑)**文件
E
EDA:Ensoniq ASR磁盘映像
EDD:元素定义文档(FrameMaker+SGML文档)
EDE:Ensoniq EPS磁盘映像
EDK:Ensoniq KT磁盘映像
EDQ:Ensoniq SQ1/SQ2/Ks磁盘映像
EDS:Ensoniq SQ磁盘映像
EDV:Ensoniq VFX-SD磁盘映像
EFA:Ensoniq ASR文件
EFE:Ensoniq EPS文件
EFK:Ensoniq KT文件
EFQ:Ensoniq SQ1/SQ2/Ks文件
EFS:Ensoniq SQ文件
EFV:Ensoniq VFX-SD文件
EMD:ABT扩展模块
EMF:Windows增强元文件
EML:Microsoft Outlook Express邮件消息(MIME RTC)文件
EXE:可执行文件(程序)
F
FAV:Microsoft Outlook导航条
FAX:传真类型图像
FCD:虚拟CD-ROM
FDF:Adobe Acrobat表单文档文件
FLA:Macromedia Flash
**FND:Microsoft Explorer保存的搜索文件(Find applet)
FON:系统字体
FRT:Microsoft FoxPro报表文件
FRX:Visual Basic表单文本;Microsoft FoxPro报表文件
FXP:经Microsoft FoxPro编译的源文件
G
GDM:铃声、口哨声和声音板模块格式
GetRight:GetRight未完成的下载文件
GHO:Norton 克隆磁盘映像
GID:Windows 全局索引文件(包括帮助状态)
GIF:CompuServe位图文件
GL:动画格式
GRP:程序管理组
H
HEX:Macintosh BinHex2.0文件
HLP:帮助文件;Date CAD Windows帮助文件
HPP:C++程序头文件
HQX:Macintosh BinHex 4.0文件
HT:HyperTerminal(超级终端)
HTM,HTML:超文本文档
HTT:Microsoft超文本模板
HTX:扩展HTML模板
I
ICO:Windows图标
IDX:Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook
Express文件
IMG:GEM映像
INF:信息文件
INI:初始化文件;Mwave DSP Synth的“nwsynth.ini” GMS安装;Cravis Ultrasound bank安装
INP:Oracle 3.0版或早期版本的表单源代码
INRS:INRS远程通信声频
INS:InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
IOF:Findit文档
IQY:Microsoft Internet查询文件
ISO:根据ISD 有关CD-ROM文件系统标准列出CD-ROM上的尾数源码相加文件
ISP:X-Internet签字文件
IST:数字跟踪设备文件
ISU:InstallShield卸装脚本
IT:脉冲跟踪系统音乐模块(MOD)文件
ITI:脉冲跟踪系统设备
ITS:脉冲跟踪系统抽样,Internet文档位置
IV:Open Inventor中使用的文件格式
IVD:超过/微观数据维数或变量等级文件
IVP:超过/的用户子集配置文件
IVT:超过/表或集合数据文件
IVX:超过/微数据目录文件
IW:Idlewild屏幕保护程序
IWC:Install Watch文档
J
J:Ricoh照相机格式
JAR:Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA:Java源文件
JAR:Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA:Java源文件
JFF,JFIF,JIF:JPEG文件
JPE,JPEG,JPG:JPEG图形文件
JS:javascript源文件
JSP:HTML网页,其中包含有对一个Java servlet的参考
K
KAR:卡拉OK MIDI文件(文本+MIDI)
L
LAB:Visual dBASE标签文件
LBT,LBX:Microsoft FoxPro标签文件
LDB:Microsoft Access加锁文件
LHA:LZH更换文件后缀
LOG:日志文件
LZH:LH ARC压缩档案
M
M1V:MPEG相关文件(MIME"mpeg"类型)
M3D:Corel Motion 3D动画文件
M3U:MPEG URL(MIME声音文件)
MAM:Microsoft Access宏
MAQ:Microsoft Access查询文件
MAR:Microsoft Access报表文件
MBX:Microsoft Outlook保存email格式;Eudora邮箱
MCW:Microsoft Word的Macintosh文档
MDB:Microsoft Access数据库
MDN:Microsoft Access空数据库模板
MDW:Microsoft Access工作组文件
MID:MIDI音乐
MMM:Microsoft多媒体
**MOV:QuickTime for Windows
**MP2:第二层MPEG音频文件
MP3:第三层MPEG音频文件
MPA:MPEG相关文件,MIME“mpeg类型”
MPE,MPEG,MPG:MPEG动画文件
MPP:Microsoft工程文件;CAD绘图文件格式
MPR:Microsoft FoxPro菜单(已编译)
MSI:Windows 安装器包
MSN:Microsoft 网络文档;Descent Mission文件
O
OBD:Microsoft Office活页夹
OBJ:对象文件
OBZ:Microsoft Office活页夹向导
OCX:Microsoft对象链接与嵌入定制控件
ODS:Microsoft Outlook Express邮箱文件
OFT:Microsoft Outlook模板
OPX:OPL扩展DLL(动态链接库)
OSS:Microsoft Office查找文件
OST:Microsoft Exchange / Outlook 离线文件
P
PAL:压缩文件
PART:Go!Zilla部分下载文件
PAS:Pascal源代码
PCS:PICS动画文件
PDF:Adobe Acrobat
可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件
PHP,PHP3:包含有PHP脚本的HTML网页
PHTML:包含有PHP脚本的HTML网页;由Perl分析解释的HTML
PM5:Pagemaker 5.0文件
PM6:Pagemaker 6.0文件
PPS:Microsoft Powerpoint幻灯片放映
PPT:Microsoft Powerpoint演示文稿
PRF:Windows系统文件,Macromedia导演设置文件
PSD:Adobe photoshop位图文件
PSM:Protracker Studio模型格式;Epic游戏的源数据文件
PST:Microsoft Outlook个人文件夹文件
PWL:Windows 口令列表文件
Q
QIF:QuickTime相关图像(MIME);Quicken导入文件
QT,QTM:QuickTime
**QTI,QTIF:QuickTime相关图像
QTP:QuickTime优先文件
QTS:Mac PICT图像文件;QuickTime相关图像
QTX:QuickTime相关图像
R
RA:RealAudio声音文件
RAM:RealAudio元文件
RAR:RAR压缩档案(Eugene Roshall格式)
REC:录音机宏;RapidComm声音文件
REG:注册表文件
REP:Visual dBASE报表文件
RES:Microsoft Visual C++资源文件
RM:RealAudio视频文件
RMF:Rich Map格式(3D游戏编辑器使用它来保存图)
ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari
、Colecovision、Sega、vuetify源码解析Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)
Rxx:多卷档案上的RAR压缩文件(xx=1~间的一个数字)
S
SAV:游戏保存文件
SB:原始带符号字节(8位)数据
SBK:Creative Labs的Soundfont 1.0 Bank文件;(Soundb laster)/EMU SonndFont v1.x
Bank文件
SBL:Shockwave Flash对象文件
SCF:Windows Explorer命令文件
SCH:Microsoft Schedule+1
SCP:拨号网络脚本文件
SCR:Windows屏幕保护;传真图像;脚本文件
SFX:RAR自解压档案
SHTML:含有服务器端包括(SSI)的HTML文件
SPL:Shockwave Flash对象;DigiTrakker抽样
SQL:Informix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名
STM:.shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件
STR:屏幕保护文件
SWA:在Macromedia导演文件(MP3文件)中的Shockwave声音文件
SWF:Shockwave Flash对象
SYS:系统文件
T
T:Commodore 仿真器磁带映像文件
THEME:Windows 桌面主题文件
TIF,TIFF:标签图像文件格式(TIFF)位图
TMP:Windows临时文件
TRM:终端文件
TXT:ASCⅡ文本格式的声音数据
TZ:老的压缩格式文件
V
VBA:VBase文件
VBP:Microsoft Visual Basic工程文件
VBW:Microsoft Visual Basic工作区文件
VBX:Microsoft Visual Basic用户定制控件
VQE,VQL:Yamaha Sound-VQ定位器文件
VQF:Yamaha Sound-VQ文件(可能出现标准)
VRF:Oracle 7配置文件
VSL:下载列表文件(GetRight)
W
WAB:Microsoft Outlook文件
WAD:包含有视频、玩家水平和其他信息的DOOM游戏的大文件
WAL:Quake 2正文文件
WAV:Windows波形声形
WBK:Microsoft Word备份文件
WFM:Visual dBASE Windows表单
WFN:在CorelDRAW中使用的符号
WIZ:Microsoft Word向导
WRL:虚拟现实模型
WWL:Microsoft Word内插器文件
X
XLK:Microsoft Excel备份
XLL:Microsoft Excel内插器文件
XLM:Microsoft Excel宏
XLS:Microsoft Excel工作单
XLT:Microsoft Excel模板
XLV:Microsoft Excel VBA模块
XLW:Microsoft Excel工作簿/工作区
Z
ZAP:Windows软件安装配置文件
ZIP:Zip文件
-:用于为老版本(或备份)文件编号(比如:被安装程序改变的CONFIG.SYS文件);又可用于为小范围的PC应用程序的多个用户相关数据文件编号
M:Lotus 1-2-3 SmartMaster文件
:Lotus 1-2-3 文件
2D:VersaCAD的2维绘画文件
2GR,3GR:在Windows之下的VGA图形驱动程序/配置文件
:在或更高级处理器上使用的文件
3D:VersaCAD的3维绘画文件
3DM:3D NURBS建模器,Rhino
3DS:3D Studio(DOS下)格式文件
:在或更高级处理器上使用的文件
4GE:Informix 4GL编译后代码
4GL:Informix 4GL源代码
:Composer ;UNIX Composer音乐模型文件;磁道模块
# 及更高的号:为计算机演示而扫描的一系列**的文件编号方法
$$$:OS/2用来跟踪档案文件
@@@:用于安装过程中的屏幕文件和用于Microsoft Code view for C这样的应用程序的指导文件
OpenHarmony 3GPP协议开发深度剖析——一文读懂RIL
市场上针对终端操作系统3GPP协议开发的相关资料较为稀缺,即便在Android领域,相关学习文档也较为有限,更不用说专门的协议开发书籍了。这可能与市场需求有关,目前市场上从事前后端软件开发的人员最多,包括我自己。
鉴于我在某手机协议开发团队工作过一段时间,vxlan源码分析对协议的AP侧和CP侧开发都有所涉猎,因此我尝试基于OpenAtom OpenHarmony(以下简称“OpenHarmony”)源码编写一些内容,旨在帮助大家了解协议开发领域,尽可能将3gpp协议内容与OpenHarmony电话子系统模块相结合进行讲解。据我所知,目前终端协议开发人才非常紧缺。首先声明,我不是协议专家,且已离开该领域五六年,如有错误,欢迎指正。
谈到终端协议开发,我首先想到的就是RIL。
CP:Communication Processor(通信处理器),通常理解为modem侧,也可以理解为底层协议,这部分由各个modem芯片厂商完成(如海思、高通)。
AP:Application Processor(应用处理器),通常指手机终端,通常理解为上层协议,主要由操作系统Telephony服务进行处理。
RIL:Radio Interface Layer(无线电接口层),通常理解为硬件抽象层,即AP侧将通信请求传给CP侧的中间层。
AT指令:AT指令是应用于终端设备与PC应用之间连接与通信的指令。
常规的Modem开发与调试可以使用AT指令进行操作,而各家的Modem芯片的AT指令都会有各自的差异。因此,手机终端厂商为了能在各种不同型号的产品中集成不同modem芯片,需要进行解耦设计来屏蔽各家AT指令的差异。
于是,OpenHarmony采用RIL对Modem进行HAL(硬件抽象),作为系统与Modem之间的通信桥梁,为AP侧提供控制Modem的接口,各Modem厂商则负责提供对应于AT命令的Vender RIL(这些一般为封装好的so库),从而实现操作系统与Modem间的解耦。
框架层:Telephony Service,电话子系统核心服务模块,主要功能是初始化RIL管理、SIM卡和搜网模块。对应OpenHarmony的源码仓库OpenHarmony/telephony_core_service。这个模块也是非常重要的一个模块,后期单独再做详细解读。
硬件抽象层:即我们要讲的RIL,对应OpenHarmony的源码仓库OpenHarmony/telephony_ril_adapter。RIL Adapter模块主要包括厂商库加载,业务接口实现以及事件调度管理。主要用于屏蔽不同modem厂商硬件差异,为上层提供统一的接口,通过注册HDF服务与上层接口通讯。
芯片层:Modem芯片相关代码,即CP侧,这些代码各个Modem厂商是不开放的,不出现在OpenHarmony中。
硬件抽象层又被划分为hril_hdf层、hril层和venderlib层。
hril_hdf层:HDF服务,基于OpenHarmony HDF框架,提供hril层与Telephony Service层进行通讯。
hril层:hril层的各个业务模块接口实现,比如通话、短彩信、数据业务等。
vendorlib层:各Modem厂商提供的对应于AT命令库,各个厂商可以出于代码闭源政策,在这里以so库形式提供。目前源码仓中已经提供了一套提供代码的AT命令操作,至于这个是针对哪个型号modem芯片的,我后续了解清楚再补充。
下面是ril_adapter仓的源码结构:
本文解读RIL层很小一部分代码,RIL是如何通过HDF与Telephony连接上的,以后更加完整的逻辑梳理会配上时序图讲解,会更加清晰。首先,我们要对OpenHarmony的HDF(Hardware Driver Foundation)驱动框架做一定了解,最好是动手写一个Demo案例,具体的可以单独去官网查阅HDF资料。
首先,找到hril_hdf.c文件的代码,它承担的是驱动业务部分,源码中是不带中文注释的,为了梳理清楚流程,我给源码关键部分加上了中文注释。
上述代码中配置了对应该驱动的moduleName为"hril_hdf",因此我们需要去找到对应驱动的配置文件,以HiDV开发板为例,它的驱动配置在vendor_hisilicon/HiDV/hdf_config/uhdf/device_info.hcs代码中可以找到,如下:
这里可以发现该驱动对应的服务名称为cellular_radio1,那么telephony_core_service通过HDF与RIL进行通信肯定会调用到该服务名称,因此无查找telephony_core_service的相关代码,可以很快定位到telephony_core_service/services/tel_ril/src/tel_ril_manager.cpp该代码,该代码中有一个关键类TelRilManager,它用来负责管理tel_ril。
看tel_ril_manager.cpp中的一个关键函数ConnectRilAdapterService,它就是用来通过HDF框架获取RIL_ADAPTER的服务,之前定义过RIL_ADAPTER_SERVICE_NAME常量为"cellular_radio1",它就是在vendor_hisilicon/XXXX/hdf_config/uhdf/device_info.hcs中配置的hril_hdf驱动对应的服务名称。