页面树结构
转至元数据结尾
转至元数据起始

注:该文档适用于SmartbiV8.5以下版本。

场景说明

通过OEM定制,客户可以在原来Smartbi Android APP基础上进行修改,修改其中的应用信息、桌面图标、启动图片、加载中的图片、主界面、登录界面等,最后打包生成一个OEM定制的Android APK文件。

在Android设备上安装该APK文件,会安装一个经过OEM定制的APP,得到在APP界面上显示客户的LOGO等显示效果。

Smartbi支持OEM定制以下内容:

1.应用信息

下表是一些OEM定制中常需修改的值。其中“名称”一列在修改应用信息时会使用到,在后文中会有说明。

名称示例说明
app_nameSmartbi应用显示名称
DEFAULT_SERVER_ADDR${n}http://demo.smartbi.com.cn/smartbi配置第n个服务器的地址
DEFAULT_USER_NAME${n}demo配置第n个服务器的登录用户名
DEFAULT_PASSWORD${n}demo配置第n个服务器的登录密码


2.相关图片资源

OEM定制过程中,一般需要修改以下6张图片。注意,在修改时,图片的名称和尺寸必须与下表严格一致

下表中所说的“路径”在后面修改图片资源时会使用到,在后文中会有说明。


图片尺寸路径
桌面图标144×144Smartbi for Android Packager\smartbi\res\drawable\logo_icon.png
LOGO550×320Smartbi for Android Packager\smartbi\res\drawable\logo.png
加载中图片1024×768Smartbi for Android Packager\smartbi\res\drawable\loading_pad.png
加载中LOGO400×100Smartbi for Android Packager\smartbi\res\drawable\loading_logo.png
主界面背景1024×768Smartbi for Android Packager\smartbi\res\drawable\mainview_background.png
桌面图标(高分辨率设备)144×144Smartbi for Android Packager\smartbi\res\drawable-hdpi\logo_icon.png




OEM定制步骤

注:若是希望后期oem更新后,APP自动提醒用户更新,可先查看wiki文档,移动端oem定制更新后提醒用户下载 再进行OEM定制

为了方便客户进行OEM定制,我们提供了Smartbi for Android Packager工具,按以下步骤可以完成OEM定制:

  1. 下载Smartbi for Android Packager.zip并解压。
  2. http://app.smartbi.com.cn/indexv8.htm 下载Smartbi apk文件,放到解压后的Smartbi for Android Packager目录中,并重命名为smartbi.apk。
  3. 修改Smartbi for Android Packager\decode.cmd中的Java路径,建议先设置好JAVA_HOME环境变量,然后像下图那样设置。注意,JAVA路径最好包含在双引号中,否则会在路径中包含空格时报错。

  4. 执行Smartbi for Android Packager\decode.cmd,执行完毕后smartbi.apk会被解压生成Smartbi for Android Packager\smartbi文件夹。
  5. OEM定制的APP应该避免收到各安卓商店的升级提示信息,因为升级相当于将定制内容重置。
    用文本编辑器打开Smartbi for Android Packager\smartbi\AndroidManifest.xml,修改<manifest>元素的android:versionCode属性的值(即下图中的值)为一个较大的数值。
    该数值是APP的版本号信息,后续发布新的版本,会持续提升这个值。设置一个较大的值,例如9999,可以避免收到各个安桌应用商店的升级提示信息。



  6. 应用信息修改:用文本编辑器打开Smartbi for Android Packager\smartbi\res\values\strings.xml,就可以对目标信息进行修改。
    应用信息的修改可以参考该表,表中的“名称”列对应的就是strings.xml中<string>的name属性。
    除了上表提到的信息外,还需修改<string name="updateCheckType">这一元素的值为private,如下图所示,这样可以避免访问app.smartbi.com.cn去获取新版本。
    其中,app_name是app的显示名称,version_n / webaddr_v /support_v / copyright_v等在设置界面显示,DEFAULT_SERVER_ADDR1 / DEFAULT_USER_NAME1 / DEFAULT_PASSWORD1D等设置了默认的服务器地址和默认访问用户/密码


  7. 相关图片资源修改:
    相关图片资源都在Smartbi for Android Packager\smartbi\res\drawable-xxx(各目录对应不同分辨率的设备)下。
    OEM定制中主要涉及到6张图片,如该表所示。表中“路径”一列表示的就是对应图片文件在解压目录下的位置及名称。
    要修改这些资源,只需替换对应的图片文件即可。注意,必须保证替换图片的文件名和图片尺寸与原图片文件完全一致。
  8. 修改Smartbi for Android Packager\encode.cmd中的Java路径,然后执行encode.cmd。

    执行完成后,Smartbi for Android Packager\smartbi目录下的内容将会被编译成Smartbi for Android Packager\Smartbi_new.apk文件。


APK文件签名

上文中生成的APK文件其实已经可以安装到一部分Android设备中,但对于部分设备会安装失败,失败原因是安装包解析出错,因此为了兼容所有安卓设备,且为了安全性起见,一般都要对APK文件进行签名。

对APK文件进行签名的主要目的,是防止第三方通过在设备上安装包名完全一致的APP来替换掉自己的APP,而且没有签名的APK文件有可能会被某些设备认为不安全而拒绝安装。

如果对这方面没有需求,理论上可以跳过APK文件签名,直接安装到Android设备上,但不建议这么做。

进行APK文件签名,可以按以下步骤来完成:

  1. 生成keystore证书,这是Android应用签名必须的。
    1. 如果已经有自己的证书,直接将自己的证书文件重命名为Smartbi.keystore然后放在Smartbi for Android Packager目录下,然后跳到第2步;
    2. 如果上次已经生成过证书,且证书已经在Smartbi for Android Packager目录下,则直接跳到第2步;
    3. 如果这是第一次操作,且没有证书,请按以下步骤生成证书文件:
      1. 修改Smartbi for Android Packager\makekey.cmd中的Java路径、keypass和storepass。
        其中keypass和storepass是keystore中需要设置的两个密码,两个密码需要保持一致
      2. 执行Smartbi for Android Packager\makekey.cmd,执行完成后,将生成Smartbi for Android Packager\Smartbi.keystore证书文件。
  2. 修改Smartbi for Android Packager\resign.cmd中的Java路径、keypass和storepass,其中keypass和storepass需要与第1步中设置的值一样。
  3. 执行Smartbi for Android Packager\resign.cmd。
    执行完成后,Smartbi for Android Packager\Smartbi_new.apk文件已经被签名成功。
    可以注意到还生成了一个Smartbi for Android Packager\Smartbi_new_Unsigned.apk文件,这个文件是原来没有签名的APK文件的备份。


移动端首页资源修改

移动端首页等资源的修改没有在上面的工具中提供,因为它们是服务器提供、APP加载的。

要修改移动端首页,可以下载MobilePortalChange.ext扩展包,用压缩工具打开扩展包,然后替换其中相应的图片资源。注意,替换的图片资源名称和尺寸必须与对应图片文件一致。

移动端首页对应的图片资源在这扩展包中这两个目录下: 【MobilePortalChange.ext\vision\android\login\img】,【MobilePortalChange.ext\vision\android\portraitweb\img】

下面两个对应LOGO的文件:

MobilePortal.ext\vision\android\login\img\login_logo.png                                  (544×72)
MobilePortal.ext\vision\android\portraitweb\img\homepage_banner.png          (280×58)

这一步必做的:为了防止修改的logo后出现不生效的问题,修改了MobilePortalChange.ext 中哪个目录下的图片,就需要保证这个目录下的version.txt上的时间和产品war包中mobileprotal.ext扩展包中的相同路径下的version.txt的时间不能相同。安卓版本的version.txt路径为:MobilePortalChange.ext\vision\android\login(如下图) ,将里边的时间信息重新修改下,保持和war包版本中的mobileprotal.ext扩展包(mobileprotal.ext在war包中扩展包路径为:C:\Smartbi_Insight\Tomcat\webapps\smartbi\WEB-INF\extensions)中的version时间不一样即可:


最后,将扩展包部署到服务器上,详见扩展包部署


“分享到微信”功能

 

由于“分享到微信”功能已经绑定了Smartbi的数字签名,因此按以上步骤生成的apk将无法使用“分享到微信”的功能。如果还需要此功能,有两种方式处理:

 
  1. 将“OEM定制步骤”中第8步生成的smartbi_new.apk发到思迈特技术支持团队进行签名。这种方式的缺点是,此apk在微信中显示的小图标还是Smartbi的图标。
  2. 用户自行在微信开发平台上申请新的应用,并将申请的app包名发到思迈特技术支持团队进行定制化开发。