页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

场景说明

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

...

图片尺寸路径
桌面图标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定制

...

  1. 下载Smartbi for Android Packager.zip并解压。
  2. http://app.smartbi.com.cn下载最新Smartbi /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文件进行签名。

...

  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加载的。

...

这一步必做的:为了防止修改的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包名发到思迈特技术支持团队进行定制化开发。