小胖熊酷数码GPS论坛 www.sosaw.com

 找回密码
 注册register

扫一扫,访问微社区

查看: 32943|回复: 105

[一机多图与图标] 最省内存的一机多图方案

  [复制链接]
发表于 2012-5-22 17:35 | |阅读模式
分享到:
综合发帖模板
发帖目的: 发布资源/OEM/补丁
地图品牌: 一机多图
测试机型: ACCO
适用系统(可多选): CE6 
地图国别: -
支持分辨率(可多选): 800x480 
资源分类(可多选): 一机多图或图标 
本帖最后由 mgxr009 于 2012-5-25 10:53 编辑

地图程序越来越占内存,一机多图程序占用内存多少是衡量程序优劣的重要指标,本人采用修改系统APP的方式调用一机多图,因不需要额外的程序,应该可以算是最省内存的一机多图程序了
先上图


本人是在这种界面的APP上修改完成的

这是原来菜单的效果

这是一机多图的效果,点击第一张图那个方向盘就出来这个画面,因为是系统调用的,所以风格和原来的菜单完全一致。

步骤:
一 如何访问系统文件
   见一楼
二 系统界面的工作原理
   见二楼
三 需要修改的系统文件
   见三楼
四 创建自己的图标
   见四楼
全部工作完成后,多图界面就已经集成到你的系统文件中,而不是点击时调用其它的程序

有TX要懒人版或分享APP,不一定好用。因为要根据你的JJ装地图的情况在自己的基础上修改,这里只能提供折腾方法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册register

x

评分

1

查看全部评分

 楼主| 发表于 2012-5-22 17:37 |
本帖最后由 mgxr009 于 2012-5-22 21:30 编辑

一 怎样访问到系统文件
      一看到图一的这种界面,就能判断得出是远锋公司的方案,艾酷机型和E路行的机器很多都是这种方案。
      7个图片和上面的工具条可能会有区别,看到后面你就会自己DIY,随心所欲打造自己的界面。
      在上面的图片中:
           LOGO(MXR-Navi)是我自己替换了;
           办公菜单是自己替换了;
           工具条上的图标自己做了调整
      要修改这些,首先要访问系统文件,如果你的机器上有进入WINCE桌面的图标(一般在设置菜单里面),直接进入即可,如果没有,把这个文件()复制到可插拔卡(一般SDMMC)的根目录,插卡重启GPS之后会自动进入CE界面。
      之后在地址栏键入RESIDENTFLASH2,回车就进入了系统的隐藏盘,会看到YFAPP文件夹,把它复制到SDMMC盘,等待处理和备份。
之后要删除YFGo2CE.bld,否则重启会一直进入WINCE界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册register

x
 楼主| 发表于 2012-5-22 17:37 |
本帖最后由 mgxr009 于 2012-5-23 10:25 编辑

二 系统界面的工作原理
把拷贝出的YFAPP文件夹放到电脑上,分析,文件夹结构如下(本人研究过几个系统,基本如此,有几个文件夹是不一样的,但很容易弄明白)
Alarm-----------远峰预装的电子狗,远峰预警
Ceflash---------播放FLASH的程序
ebook-----------电子书的程序
eighttushell----界面程序,配合其它文件显示各级菜单
favorite--------收藏夹
games-----------游戏
language--------语言选项
photo-----------图片
setting---------里面包含了工具里面的和设置菜单下的小程序,打开根据文件名就看得出
skins-----------里面包含个很多配置文件,皮肤文件,研究的重点文件夹之一
sound-----------声音文件
system----------里面包含了关机、重启、usb连接设置等用到的小程序
systemprog------公用图标、GPS信号处理等小程序
toolbox---------几个工具菜单用到的小程序
voplayer--------播放器程序。如果你的播放器不支持RMVB等格式,是因为这里面的解码文件不过多,可以扩充、整体更换为你喜欢的播放器
yffonts---------字体
index.ini-------系统配置文件
yfloader.exe----加在界面文件
上面的文件夹你可以重新调整,只要和后面谈到的配置文件对应起来就行。几个重点攻克的地方:
Alarm,想换电子狗的人,从这里动手吧
games,想自己加入喜欢的游戏,先把文件拷贝到这里面
skins,改头换面的重点研究对象
voplayer,如果你的播放器不支持RMVB等格式,是因为这里面的解码文件不过多,可以扩充、整体更换为你喜欢的播放器
打开INDEX.INI文件
[Config]
AvailableLangs = 0,10,11
AvailableSkins = Color7_84A_C264
SoftwareVersion = EP1.0.MH.2011710
[DefaultSetting]
Volume = 0
TapSound = 0
StartMusic = Music01.wav
Backlight = 30
BLTimeOut = 0
Language = 10
Skin = Color7_84A_C164
TimeZone = China Standard Time
TimeFormat = 24
BTDeviceName = ACCO MID Q7
OEMString = YFPRIMA
StartPath = EightTuShell\EightTuShell.exe
IsGpsAutoRun = 0
GpsPath = \ResidentFlash\DSA\DSA.EXE  //指定的导航程序,这是系统原来默认的工作方式,修改后此句将失效
[Run]
TaskManage = others\TaskManagerce.exe
[Setup] 指定了执行的皮肤文件,根据是否有BT和CMMB采用不同的皮肤。有的方案里面没有这一段,则皮肤默认EightTuShell.xml
ShellXmlPath = Skins\Color7_84A_C164\EightTuShell.xml
NOBT_NOCMMB = _NOBT_NOCMMB.xml
NOBT_CMMB = _NOBT_CMMB.xml
BT_NOCMMB = _NOBT_NOCMMB.xml
BT_CMMB = _NOBT_CMMB.xml
打开皮肤配置文件EightTuShell.xml 。这是一个文本文件可以用记事本编辑。说明如下:
<Shell>
<MainMenu NAME="MainMenu" RECT="0,0,800,480" ANIMATION="1" SKINPATH="MAINMENU.dat">  
//本语句指明是主菜单,对应画面范围从0,0即左上角开始,大小800x480,如果不是高清,则应0,0,480,272,显示启用动画,菜单上用到的一些图标包含在MAINMENU.dat里面
  <Page RECT="0,48,800,432" IMAGESEL="0">定义本页面的范围,就是那7个大图标,因为上面有工具条,留下了高度48的空间
   <GpsBtn //那个方向盘图标的相关定义
   IMAGE="1020"//1020是MAINMENU.dat中的资源序号,一个TGA图片
   RECT="0,0,400,216"//所占位置
   EXEPATH="\SDMMC\AutoNavi.exe"//点击后执行的文件,如果没有该文件,到上面INDEX.INI中找 GpsPath =语句
   TEXT=" "//在图标下方显示的文字
   Style="MainMenuBtnText"
   />
   <Calendar //日历图标,与上面结构相同,不一一解释
   IMAGE="PNG:70"
   RECT="400,0,200,216"
   EXEPATH="Setting\FMSetting.exe"
   Style="MainMenuBtnText"
   TEXT=""
   />
                         ............
   <Games //游戏
   IMAGE="1023"
   RECT="0,216,200,216"
   Style="ShellBtnText"
   TEXT=" "
   EXEPATH="GamesDlg"//注意此处和上面的区别,上面是去执行一个程序,这里是打开一个二级菜单的对话框
   />
                        .........
   />
  </Page>
  <Panel RECT="0,0,800,48" IMAGE="1028">此处定义了最上面的工具条
   <YFLogo //工具条上面的第一个图标,是LOGO,下面语句的结构和上面相同,分别是图标代号、所占位置、点击后执行的程序
   IMAGE="PNG:80"
   RECT="29,8,125,48"
   EXEPATH="Setting\SystemInfo.exe"
   />
                        .......
   />     
  </Panel>
</MainMenu>

        ....
        上面谈到游戏点击后是一个对话框,此处定义了对话框里面的内容
<GamesDlg IMAGE="20" RECT="0,0,800,480" SKINPATH="MAINMENU.dat" SKINTYPE="1">
  <ANIMATION
   ID="13"
   SOUND="StartUpAnimation.wav"
  />
  <PageDown
   ID="13"
   RECT="24,80,752,380"
  />
  <page RECT="24,80,752,380" IMAGESEL="100">//第一个页面   
   <Game1
   IMAGE="1301"
   RECT="0,0,160,180"   
   TEXT="Othello"
   Style="ShellBtnText"
   EXEPATH="Games\Othello.exe"
   />
   <Game2
   IMAGE="1303"
   RECT="194,0,160,180"
   EXEPATH="Games\Majiang.exe"
   Style="ShellBtnText"
   TEXT="Majiang"
   />
.......
                        <!--NextBtn//如果内容太多,需要几个页面,此处是下一页的按钮
   IMAGE="1110"
   RECT="333,105,100,106"   
   EXEPATH="Next"
   /-->     
  </page>
  <page1 RECT="24,47,433,210">//第二个页面   
   <Game1
   IMAGE="1313"
   RECT="0,0,100,106"   
   EXEPATH="Games\CHchess.exe"
   Style="ShellBtnText"
   TEXT="ChineseChess"
   />
   <Game2
   IMAGE="1300"
   RECT="111,0,100,106"
   EXEPATH="Games\DuiDui.exe"
   Style="ShellBtnText"
   TEXT="DuiDuiPeng"
   />
.......
  </page1>
  <Panel RECT="0,0,800,80">
   <Title
   RECT="20,15,300,35"
   Normal="FFFFFF"
   Style="Title"
   TEXT="SH_GamesTitle"
   />
  </Panel>
  <CloseBtn
   SKINTYPE="1"
   IMAGE="TGA:10"
   RECT="708,0,60,60"
  />
</GamesDlg>

//下面还定义了一些对话框和控件,不一一解释

</Shell>
上面的说明有些罗嗦,到这里大致应该明白
1 屏幕上出来的界面在这个文件里面定义
2 界面上显示的图标在文件MAINMENU.dat中,还有一些公用的元素,例如关闭的“x”等在common.dat和MEDIA.DAT中
因此只要修改各图标相关定义中EXEPATH= 就可以改变点击该图标后的行为:是打开一个程序还是打开一个包含几个图标的菜单,一般实现的一机多图是去执行一机多图的引导程序,我们将修改为打开包含多图的菜单
我们可以在MAINMENU.dat中任意添加自己喜欢的图标,包括各个界面上的。我上面的一机八图是自己添加了八个图标,点击原来的导航图标后展开了包含这八个图标的菜单。


 楼主| 发表于 2012-5-22 17:38 |
本帖最后由 mgxr009 于 2012-5-23 15:45 编辑

三 需要修改的系统文件
谈到上边,原理已经清楚了。现在开始实战
1 修改配置文件
打开配置文件,此处以EightTuShell.xml为例,找到
   <GpsBtn
   IMAGE="1020"
   RECT="0,0,400,216"
   EXEPATH="\SDMMC\AutoNavi.exe"
   TEXT=" "
   Style="MainMenuBtnText"
   />
上面的指令定义了点击导航菜单时执行一个特定的程序,我们把它改为打开包含几个菜单的画面,即一个对话框。
   <Gps
   IMAGE="1020"
   RECT="0,0,400,216"
   Style="MainMenuBtnText"
   TEXT=" "
   EXEPATH="NaviDlg"
   />
然后添加对话框定义
<NaviDlg IMAGE="20" RECT="0,0,800,480" SKINPATH="Mainmenu.dat" SKINTYPE="1">
  <ANIMATION
   ID="13"
   SOUND="StartUpAnimation.wav"
  />
  <page RECT="24,80,752,380" IMAGESEL="100">
   <cld
   IMAGE="PNG:31"
   RECT="0,0,160,180"   
   TEXT="凯立德"
   Style="ShellBtnText"
   EXEPATH="\SDMMC\NaviOne\NaviOne.exe"
   />
   <ddt
   IMAGE="PNG:32"
   RECT="194,0,160,180"
   EXEPATH="\SDMMC\RTNAVI\RTNAVI.exe"
   Style="ShellBtnText"
   TEXT="道道通"
   />
   <mx
   IMAGE="PNG:33"
   RECT="388,0,160,180"
   EXEPATH="\SDMMC\MXNavi\MXNavi.exe"
   Style="ShellBtnText"
   TEXT="美行"
   />
   <igo
   IMAGE="PNG:34"
   RECT="582,0,160,180"
   EXEPATH="\SDMMC\igoQ2\igoQ2.exe"
   Style="ShellBtnText"
   TEXT="IGO"
   />
   <r66
   IMAGE="PNG:35"
   RECT="0,200,160,180"
   EXEPATH="\SDMMC\ROUTE66_V9\ROUTE 66 Maps.exe"
   Style="ShellBtnText"
   TEXT="Route66"
   />
   <gou
   IMAGE="PNG:36"
   RECT="194,200,160,180"
   EXEPATH="\SDMMC\GoU\GoU.exe"
   Style="ShellBtnText"
   TEXT="任我行"
   />
   <tjj
   IMAGE="PNG:37"
   RECT="388,200,160,180"
   EXEPATH="\SDMMC\navigation\NaviOne.exe"
   Style="ShellBtnText"
   TEXT="铁将军"
   />
   <XKgd
   IMAGE="PNG:38"
   RECT="582,200,160,180"
   EXEPATH="\SDMMC\shinco\SHNNavi.exe"
   Style="ShellBtnText"
   TEXT="新科高德"
   />  
   
  </page>
  <Panel RECT="0,0,800,80">
   <Title
   RECT="20,15,300,35"
   Normal="FFFFFF"
   Style="Title"
   TEXT="导航"
   />
  </Panel>
  <CloseBtn
   SKINTYPE="1"
   IMAGE="TGA:10"
   RECT="708,0,60,60"
  />
</NaviDlg>
以上前大半部分定义了八图的图标和位置,后面是对话框标题和关闭按钮的定义
注意上面的结构
开始处有 <NaviDlg
结束处有 </NaviDlg>
这两个配对使用,这是语法要求。
添加的位置,你可以找到游戏(GamesDlg)或者设置(SettingDlg)或者工具(ToolsDlg)对话框机构体开始前或结束后的位置。
2 添加图标
图标文件包含在MAINMENU.DAT文件中,很多不同类型的文件都用这个扩展名,此处这个文件包含了很多图片文件,有些游戏程序也可以看到类似的包含着图片和声音的文件
我用RESHACKER打开,添加界面如下图

我添加的文件类型为PNG,也可以是BMP格式。文件中原来还有一些TGA格式,在我的机器上是加密过的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册register

x
 楼主| 发表于 2012-5-22 17:38 |
本帖最后由 mgxr009 于 2012-5-25 11:16 编辑

四 创建自己的图标。
这部分不详细说了,如果自己喜欢动手,用PHOTOSHOP自己做,不喜欢网上也有现成的图标。
图片包含四周的空白部分,大小要编辑成160x180,真正的图标大小100x100,放到中间偏上的位置,这样定位和显示文字要容易些。如果直接做成100x100大小,定位的时候要计算好,文字显示容易偏到一边。
如果做成的PNG文件放到MAINMENU.DAT里面却显示不出来,应该是PNG文件的层信息弄得不对,PHOTOSHOP保存文件时会提示。 为确保正确,需要用Fireworks调整一下层信息
发表于 2012-5-22 17:52 |
支持下折腾精神。
绝大多数所谓系统APP是德版多图的变种。
已经没有兴趣折腾这个了。感觉简简单单的德版到顶了。
发表于 2012-5-22 18:00 |
纯支持一下,折腾快乐!
发表于 2012-5-22 18:04 |
支持折腾!
发表于 2012-5-22 18:09 |
折腾快乐!折腾快乐!
发表于 2012-5-22 18:50 |
不错,更昂达的界面很相像。
发表于 2012-5-22 18:52 |
帮顶帮顶
发表于 2012-5-22 19:23 |
使用德国的SystemInformation很久了,看看LZ的大作。
发表于 2012-5-22 19:27 |
谢谢分享,欢迎折腾。
发表于 2012-5-22 19:38 |
回复支持楼主提供小内存一机多图共享。
发表于 2012-5-22 19:42 |

折腾快乐!折腾快乐!

百度SITEMAP|小黑屋|Archiver|手机版|小胖熊酷数码GPS论坛 www.sosaw.com ( 沪ICP备16050520号-1 )|网站地图 

GMT+8, 2019-9-22 09:35 , Processed in 0.397290 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表