内存管理系统及方法

文档序号:6472654阅读:245来源:国知局
专利名称:内存管理系统及方法
技术领域
本发明涉及一种存储器管理系统及方法,尤其涉及一种应用于移动装置中的内存
管理系统及方法。
背景技术
动态内存配置在计算机或嵌入式系统中关系到软件的执行效率,包括配置/释放速度与同时可执行的程序数目。 在即时作业系统(Real-Time Operating System, RTOS)中,特别强调应用程序的反应速度,因此经常会采用内存区块资源区(Partition Memory Pool)来动态配置内存。这种方法的优点是配置及释放速度快,配置时间在任何情况下是一致的,不随使用状况而变化。 但是,这种方法的缺点是(l)需事先规划每一个内存区块划分后得到的子区块的大小与数目;(2)存在内部碎裂的问题。

发明内容
鉴于以上内容,有必要提供一种内存管理系统,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置。 此外,还有必要提供一种内存管理方法,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置。 —种内存管理系统,应用于移动装置中,所述系统包括初始化模块,用于当移动装置启动时,初始化内存区块;统计模块,用于统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T ;所述统计模块,还用于在每次记录统计次数T时,判断该移动装置是否是第一次进行内存区块配置,及当第一次进行内存区块配置时判断是否T > Tl,或者当不是第一次进行内存区块配置时判断是否T > T2,其中,T1和T2为预设值,且Tl > T2 ;第一调整模块,用于当T > Tl或T > T2时,重置统计次数T,并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块PI ;第二调整模块,用于调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大;组合模块,用于将第一调整模块和第二调整模块中调整后剩余的部分Rl和R2组合成数个Pl区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。 —种内存管理方法,应用于移动装置中,该方法包括如下步骤当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;每隔设定的间隔次数,重新调整一次内存区块的配置,包括调整尖峰使用率最高与最低的内存区块P1、 P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1,剩余部分记为Rl ;调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大,剩余部分记为R2 ;将调整后剩余的部分Rl和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
相较于现有技术,所述的内存管理系统及方法,当移动装置启动后,可根据实际使用状况动态调整内存区块的配置,提高了内存的使用效率,降低了内存区块中的内部碎裂。


图1是本发明一种内存管理系统较佳实施例的硬件架构图。图2是图1中内存管理单元的功能模块图。图3是本发明一种内存管理方法较佳实施例的流程图。图4是本发明内存区块的示意图。图5是图4中步骤S46的内存调整示意图。图6是图4中步骤S46的具体流程图。图7是图4中步骤S47的内存调整示意图。图8是图4中步骤S47的具体流程图。图9是图4中步骤S48的内存调整示意图。
具体实施例方式
如图l所示,是本发明一种内存管理系统较佳实施例的硬件架构图。该系统主要包括微处理器1、存储器2及输入/输出设备3,所述微处理器1与所述存储器2和输入/输出设备3相连。其中,所述存储器2包括内存21和内存管理单元20。所述内存21用于存储各种资料(如短信或匪S,其来源可能是其它移动装置,或是从网络下载得到)。所述内存21可以是动态随机存取内存(Dynamic Random Access Memory, DRAM)或同步动态随机存取内存(Synchronous DRAM, SDRAM)等。输入/输出设备3包括LCD液晶显示屏和键盘等,分别用于显示资料及输入信息。 所述微处理器1用于调用所述内存管理单元20,并控制所述内存管理单元20的执行。所述内存管理单元20用于当移动装置启动后,根据实际使用状况动态调整内存21的配置。 如图2所示,是图1中所示内存管理单元20的功能模块图。所述内存管理单元20包括初始化模块200、统计模块201、第一调整模块202、第二调整模块203及组合模块204。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此在本发明以下对软件描述中都以模块描述。 所述初始化模块200用于当移动装置启动时,初始化内存区块。在本实施例中,以P1、P2、…、Pm记录不同的内存区块,Nl、N2、…、Nm记录内存区块Pl、P2、…、Pm中所含子区块的数目(每个子区块的大小都相等),S1、S2、…、Sm记录内存区块Pl、P2、…、Pm中每一个子区块的大小。其中,一个内存区块Pm的大小二Sn^Nm。如图4所示,是本发明内存区块的示意图。在图4中,内存区块P5、P6、P7、和P8中各子区块的大小分别为1个字节、2个字节、3个字节和4个字节,内存区块P5、P6、P7和P8所包含的子区块数目分别为18个、12个、4个和3个。因此,内存区块P5、P6、P7和P8的大小分别为1*18 = 18 (字节)、2*12=24(字节)、3*4 = 12(字节)和4*3 = 12(字节)。 所述统计模块201用于统计内存区块的尖峰使用率及平均破碎率,同时记录统 计次数T。所述尖峰使用率是指内存使用率的最高值,所述平均破碎率是指内存碎片在内 存区块中所占比例的平均值,所述内存碎片是指当分配的内存区块大于所需的内存大小 时,多余的内存空间。例如,需求为35Bytes,而分配到的内存区块大小为50Bytes,多余的 15Bytes称为内存碎片,该内存区块的破碎率为15/50 = 30%。所述统计次数是指统计内 存区块尖峰使用率及平均破碎率的次数。 所述统计模块201,还用于在每次记录统计次数T时,判断该移动装置是否是第一 次进行内存区块配置,及判断是否T > Tl或者T > T2。其中,Tl和T2为预设值,且Tl > T2。 其中,可以用一个变量记录是否是第一次进行内存区块配置,如果是第一次进行内存区块 配置,则将该变量设置为l,判断该变量是否为1即可知道是否是第一次进行内存区块配置。 所述第一调整模块202,用于当T > Tl或T > T2时,重置统计次数T(即将变量 T置为0),并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区 块P2转换成尖峰使用率最高的内存区块P1。在本实施例中,系统预设有三个尖峰使用率 第一尖峰使用率Ua、第二尖峰使用率Ub和最低额定使用率Un,其中,Ua>Ub>Un。在本 实施例中,如果内存区块P1和P2的尖峰使用率都大于或等于第一尖峰使用率Ua,则第一调 整模块202不进行调整;如果一个内存区块的尖峰使用率小于最低额定使用率Un,则进行 计算时以最低额定使用率Un作为该内存区块的尖峰使用率。 具体而言,如果尖峰使用率最高的内存区块Pl是较大的内存区块,而尖峰使用率 最低的内存区块P2是较小的内存区块,则第一调整模块202组合数个较小的内存区块P2 成一个较大的内存区块Pl,剩余部分记为Rl(参见图5a);如果尖峰使用率最高的内存区块 P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则第一调整模 块202分解较大的内存区块变P2成为数个较小的内存区块Pl,剩余部分记为Rl (参见图 5b)。在本实施例中,所述较大的内存区块是指内存子区块较大的内存区块,所述剩余部分 是指调整后多出来的内存空间。具体过程参阅图3中步骤S46所述。 所述第二调整模块203,用于调整尖峰使用率大于预设的第二尖峰使用率Ub中 平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,如果内存区块P3 的实际使用大小接近于P3本身,则将内存区块P3调小,如果内存区块P3的实际使用大 小接近于内存区块P4的大小,则将内存区块P4调大,使得调整后的内存区块大小更接近 实际需求,降低破碎率,更有效地利用内存。具体而言,第二调整模块203先计算04 = ((S3* (1-F3% ) /S4) -1) *100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大 小,F3代表内存区块P3的平均破碎率。 如果F3 < 04 (即内存区块P3的实际使用大小接近于P3本身),则第二调整模块 203将内存区块P3调小D%,内存区块P3的内存子区块的数目不变,剩余部分记为R2(参 见图7a);如果F3 > 04(即内存区块P3的实际使用大小接近于内存区块P4的大小),则第 二调整模块203将内存区块P4调大DX,内存区块P4的内存子区块的数目减少,剩余部分 记为R2(参见图7b)。在其它实施例中,为符合实际需要,可以限制最大的内存区块不做调 小的动作。具体过程参阅图3中步骤S47所述。在本实施例中,DX为一个预设值,在其它
6实施例中,DX值的大小可以根据内存区块的大小动态调整。 所述组合模块204,用于将第一调整模块202和第二调整模块203中调整后剩余 的部分Rl和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置 时被重复利用(参见图9)。在图9中,左边的R3代表上一次组合后的剩余部分,右边的R3 代表本次组合完成后的剩余部分。 如图3所示,是本发明一种内存管理方法较佳实施例的流程图。 步骤S41,当移动装置启动时,初始化模块200初始化内存区块。 步骤S42,统计模块201统计内存区块的尖峰使用率及平均破碎率,同时记录统计
次数T。 步骤S43,统计模块201判断该移动装置是否是第一次进行内存区块配置,如果 是,执行步骤S45,如果不是,执行步骤S44。系统在第一次开机之时,内存区块是以预设的 方式进行管理。随后,统计模块201统计内存区块的实际使用状况(包括尖峰使用率及平 均破碎率),统计次数累积到预设的统计次数T1后,开始调整内存区块的配置。之后每多统 计T2(T1 ^T2)次后,调整一次内存区块的配置,并取最近的T1数目作为计算尖峰使用率 及平均破碎率的基础。例如,T1 = 5,T2 = 3,则统计次数达到5次后,开始调整内存区块的 配置,统计次数达到8 (5+3)次后,再次调整内存区块的配置,并取第4、5、6、7、8次的统计数 据作为计算尖峰使用率及平均破碎率的基础。当Tl = T2时,该步骤也可以取消,直接判断 是否T > Tl或T > T2即可。 步骤S44,统计模块201判断是否T > T2,如果T > T2,执行步骤S46,否则,流程 返回步骤S42,继续统计内存区块的尖峰使用率及平均破碎率。 步骤S45,统计模块201判断是否T > Tl,如果T > Tl,执行步骤S46,否则,流程 返回步骤S42,继续统计内存区块的尖峰使用率及平均破碎率。 步骤S46,第一调整模块202重置统计次数T,并调整尖峰使用率最高与最低的内 存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1, 具体流程参见图6的说明。如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰 使用率最低的内存区块P2是较小的内存区块,则第一调整模块202组合数个较小的内存区 块P2成一个较大的内存区块Pl,剩余部分记为Rl(参见图5a);如果尖峰使用率最高的内 存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则第一 调整模块202分解较大的内存区块变P2成为数个较小的内存区块Pl,剩余部分记为Rl (参 见图5b)。在本实施例中,如果内存区块P1和P2的尖峰使用率都大于或等于第一尖峰使用 率Ua,则不执行此步骤。 步骤S47,第二调整模块203调整尖峰使用率大于第二尖峰使用率Ub中平均破碎 率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,如果内存区块P3的实际使用 大小接近于P3本身,则将内存区块P3调小,如果内存区块P3的实际使用大小接近于内存 区块P4的大小,则将内存区块P4调大,具体流程参见图8的说明。具体而言,第二调整模 块203先计算<formula>formula see original document page 7</formula>。其中,S3和S4代表内存区块P3和P4 中每个内存子区块的大小,F3代表内存区块P3的平均破碎率。如果F3 < 04(即内存区块 P3的实际使用大小接近于P3本身),则第二调整模块203将内存区块P3调小D%,内存区 块P3的内存子区块的数目不变,剩余部分记为R2(参见图7a);如果F3 > 04(即内存区块P3的实际使用大小接近于P4),则第二调整模块203将内存区块P4调大D%,内存区块P4 的内存子区块的数目减少,剩余部分记为R2(参见图7b)。在其它实施例中,为符合实际需 要,可以限制最大的内存区块不做调小的动作。 步骤S48,组合模块204将步骤S46和步骤S47中调整后剩余的部分Rl和R2组合 成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用(参见 图9)。 如图6所示,是图4中步骤S46的具体流程图。步骤S50,第一调整模块202找出 尖峰使用率最高与最低的内存区块P1和P2。 步骤S51,第一调整模块202判断内存区块P2的尖峰使用率是否小于第一尖峰使 用率Ua。如果P2的尖峰使用率小于Ua,执行步骤S52,如果P2的尖峰使用率大于或等于 Ua,则执行步骤S47。 步骤S52,第一调整模块202判断内存区块P1中一个内存子区块的大小S1是否大 于内存区块P2中一个内存子区块的大小S2。如果S1 > S2,执行步骤S53,如果S1《S2, 则执行步骤S55。 步骤S53,第 一 调整模块202判断是否符合条件1 ,条件1为N2- (Sl/S2) > N2*U2 (即内存区块P2调整后的子区块数目大于调整前的实际使用数目),并且N2- (Sl/S2) 〉N0(即内存区块P2调整后的子区块数目大于预设的最少额定数目)。如果符合条件l, 执行步骤S54,如果不符合条件1,则执行步骤S57。其中,N2代表内存区块P2调整前的子 区块数目,U2代表内存区块P2实际统计出的尖峰使用率,NO代表内存子区块的最少额定数 目。 步骤S54,第一调整模块202组合数个内存区块P2成为一个内存区块P1 ,剩余部 分记为R1,然后,流程转到步骤S47。 步骤S55,第一调整模块202判断是否符合条件2,条件2为N2_1 > N2*U2 (即内 存区块P2调整后的子区块数目大于调整前的实际使用数目),并且N2-l > NO (即内存区块 P2调整后的子区块数目大于预设的最少额定数目)。如果符合条件2,执行步骤S56,如果 不符合条件2,则流程转到步骤S47。 步骤S56,第一调整模块202分解一个内存区块P2成为数个内存区块P1,剩余部 分记为Rl,然后流程转到步骤S47。 步骤S57,第一调整模块202判断是否符合条件(N2_N2*U2) < (N2-N0),如果符 合该条件,执行步骤S59,如果不符合该条件,则执行步骤S58。 步骤S58,第一调整模块202以(N2-N0) *S2的数值记录Rl的大小,然后流程转到 步骤S47。 步骤S59,第一调整模块202以(N2_N2*U2) *S2的数值记录Rl的大小,然后流程转 到步骤S47。 如图8所示,是图4中步骤S47的具体流程图。步骤S60,第二调整模块203找出 尖峰使用率大于第二尖峰使用率U2中平均破碎率最高的内存区块P3,及区块大小恰小于 P3的内存区块P4。 步骤S61,第二调整模块203判断是否符合条件3,条件3为F3 < ((S3* (1_F3% ) / S4) -1) *100 (即内存区块P3的实际使用大小接近于P3本身。如果符合条件3,执行步骤S62,如果不符合条件3,则执行步骤S64。其中,F3代表内存区块P3的平均破碎率(破碎 率总和/统计次数)。 步骤S62,第二调整模块203判断是否符合条件5,条件5为S3*(1_D%) 〉S4(即 内存区块P3调整后的子区块大小大于内存区块P4的子区块大小)。如果符合条件5,执行 步骤S63,如果不符合条件5,则流程转到步骤S48。其中,DX为预设的调整比例。
步骤S63,第二调整模块203将内存区块P3调小D% ,内存子区块的数目不变,剩 余部分记为R2,然后,流程转到步骤S48。 步骤S64,第二调整模块203判断是否符合条件4,条件4为 (N4*S4)/(S4*(1+D% )) > N4*U4 (即内存区块P4调整后的子区块数目大于调整
前的实际使用数目),并且(N4*S4)/(S4*(1+D% )) 〉N0(即内存区块P4调整后的子区块
数目大于预设的最少额定数目)。如果符合条件4,执行步骤S65,如果不符合条件4,则执
行步骤S67。其中,N4代表内存区块P4调整前的子区块数目,U4代表内存区块P4实际统
计出的尖峰使用率。 步骤S65,第二调整模块203判断是否符合条件6,条件6为调整后S4 < S3。如 果符合条件6,执行步骤S66,如果不符合条件6,则流程转到步骤S48。
步骤S66,第二调整模块203将内存区块P4调大D% ,内存子区块的数目减少,剩 余部分记为R2,然后,流程转到步骤S48。 步骤S67,第二调整模块203判断是否符合条件(N4_N4*U4) < (N4-N0),如果符 合该条件,执行步骤S68,如果不符合该条件,则执行步骤S70。 步骤S68,第二调整模块203判断是否符合条件6,如果符合条件6,执行步骤S69, 如果不符合条件6,则流程转到步骤S48。 步骤S69,第二调整模块203将内存区块P4调大(N4_N4*U4) *S4/ (N4*U4),且数目 为N扭U4,剩余部分记为R2,然后,流程转到步骤S48。其中,N4代表内存区块P4调整前的 子区块数目,U4代表内存区块P4实际统计出的尖峰使用率。 步骤S70,第二调整模块203判断是否符合条件6,如果符合条件6,执行步骤S71, 如果不符合条件6,则流程转到步骤S48。 步骤S71,第二调整模块203将内存区块P4调大(N4-N0) *S4/N0,且数目为NO,剩 余部分记为R2,然后,流程转到步骤S48。 本实施例中的移动装置可以为手机、数码相机或PDA (Personal Digital Assistant,个人数字助理)等具有资料处理功能的电子设备。 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照 较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的 技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
一种内存管理方法,应用于移动装置中,其特征在于,该方法包括如下步骤当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;每隔设定的间隔次数,重新调整一次内存区块的配置,包括调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块P1,剩余部分记为R1;调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大,剩余部分记为R2;及将调整后剩余的部分R1和R2组合成数个P1区块,剩余部分记为R3,R3可于下一次调整内存区块的配置时被重复利用。
2. 如权利要求1所述的内存管理方法,其特征在于,所述步骤调整尖峰使用率最高与最低的内存区块P1、P2包括如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则组合数个较小的内存区块P2成一个较大的内存区块P1 ;及如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则分解较大的内存区块变P2成为数个较小的内存区块P1。
3. 如权利要求2所述的内存管理方法,其特征在于,所述较大的内存区块是指内存子区块较大的内存区块。
4. 如权利要求1所述的内存管理方法,其特征在于,所述步骤调整尖峰使用率大于预设的尖峰使用率中、平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4包括计算04 = ((S3* (1-F3% ) /S4) -1) *100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率;如果F3 < 04,则将内存区块P3调小D % ,内存区块P3的内存子区块的数目不变,其中,DX为预设值;如果F3 > 04,则将内存区块P4调大D % ,内存区块P4的内存子区块的数目减少。
5. 如权利要求4所述的内存管理方法,其特征在于,最大的内存区块不做调小的动作。
6. —种内存管理系统,应用于移动装置中,其特征在于,所述系统包括初始化模块,用于当移动装置启动时,初始化内存区块;统计模块,用于统计内存区块的尖峰使用率及平均破碎率,同时记录统计次数T ;所述统计模块,还用于在每次记录统计次数T时,判断该移动装置是否是第一次进行内存区块配置,及当第一次进行内存区块配置时判断是否T > Tl,或者当不是第一次进行内存区块配置时判断是否T > T2,其中,Tl和T2为预设值,且Tl > T2 ;第一调整模块,用于当T > Tl或T > T2时,重置统计次数T,并调整尖峰使用率最高与最低的内存区块P1、P2,将尖峰使用率最低的的内存区块P2转换成尖峰使用率最高的内存区块Pl ;第二调整模块,用于调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4,当P3的实际使用大小接近于P3本身时,将P3调小,当P3的实际使用大小接近于P4的大小时,将P4调大;及组合模块,用于将第一调整模块和第二调整模块中调整后剩余的部分Rl和R2组合成数个P1区块,剩余部分记为R3, R3可于下一次调整内存区块的配置时被重复利用。
7. 如权利要求6所述的内存管理系统,其特征在于,所述第一调整模块调整尖峰使用率最高与最低的内存区块P1、P2包括如果尖峰使用率最高的内存区块P1是较大的内存区块,而尖峰使用率最低的内存区块P2是较小的内存区块,则组合数个较小的内存区块P2成一个较大的内存区块Pl ;及如果尖峰使用率最高的内存区块P1是较小的内存区块,而尖峰使用率最低的内存区块P2是较大的内存区块,则分解较大的内存区块变P2成为数个较小的内存区块P1。
8. 如权利要求7所述的内存管理系统,其特征在于,所述较大的内存区块是指内存子区块较大的内存区块。
9. 如权利要求6所述的内存管理系统,其特征在于,所述第二调整模块调整尖峰使用率大于预设的尖峰使用率中、平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4包括计算04 = ((S3*(l-F3% )/S4)-1)氺100,其中,S3和S4代表内存区块P3和P4中每个内存子区块的大小,F3代表内存区块P3的平均破碎率;如果F3 < 04,则将内存区块P3调小D % ,内存区块P3的内存子区块的数目不变,其中,DX为预设值;如果F3 > 04,则将内存区块P4调大D%,内存区块P4的内存子区块的数目减少。
10. 如权利要求6所述的内存管理系统,其特征在于,所述移动装置为手机、数码相机或PDA。
全文摘要
一种内存管理方法,应用于移动装置中,包括如下步骤当移动装置启动时,初始化内存区块,并开始统计内存区块的尖峰使用率及平均破碎率;每隔设定的间隔次数,重新调整一次内存区块的配置,包括调整尖峰使用率最高与最低的内存区块P1、P2;调整尖峰使用率大于预设的尖峰使用率中平均破碎率最高的内存区块P3,及区块大小恰小于P3的内存区块P4;将调整后剩余的部分组合成数个P1区块。本发明还提供一种内存管理系统。利用本发明可根据实际使用状况动态调整内存区块的配置。
文档编号G06F12/06GK101751342SQ20081030579
公开日2010年6月23日 申请日期2008年11月27日 优先权日2008年11月27日
发明者苏怡仁 申请人:深圳富泰宏精密工业有限公司;奇美通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1