-- 作者 谢恩铭 转载请注明出处

内容简介


  1. 前言
  2. 三星的KNOX容器例子app
  3. 我改动后的源码
  4. 主要的改动
  5. 后记

1. 前言


上一篇【Android信息安防】三星KNOX容器(1)中, 我们简介了Android的容器概念和三星的KNOX容器, 这次我们要来看一下创建KNOX容器的例子app, 以及我的实现。

下文中Container和容器可以互换。因为容器的英语就是Container。

不过今天这里讲的三星KNOX和KNOX的容器技术, 如果你不是用三星手机, 那么基本不太会接触。

2. 三星的KNOX容器例子app


三星官网的KNOX Container使用手册页面

你需要首先注册一个三星开发者账号。创建成功之后,登录。然后在你的开发者后台可以创建和管理你的开发者License(证书)。

三星提供了一个开放源码的Container例子app,在这里 ,不过须要首先登录开发者账户才能获取。

这个例子app就是一个Android项目,把它用Android Studio运行起来,使用截图如下所示:

初始界面 须要填入Enterprise License和KNOX License 激活了Enterprise License和KNOX License之后显示的界面 选择要创建的Container类型

我的app扩充了三星的KNOX Container(容器)例子app , 加入了新功能:

  • 在把app迁移到Container之前保存app的数据
  • 迁移app到Container
  • 导入保存的数据到Container中的app
    (因为app从Container外迁移到Container里,会首先删除所有数据)

3. 我改动后的源码


源码在我的Github上:

https://github.com/frogoscar/knox-container

有时间可以研究一下源码,如果是做Android开发的朋友,应该不难理解此源码。

如果要方便测试, 可以把你在开发者后台创建的Enterprise License和Knox License分别填入源码的几个EditText里 :

edtKLM.setText("你的KNOX License");edtELM.setText("你的Enterprise License");

, 就不用每次复制黏贴了。

测试截图:

4. 主要的改动


  • ContainerCreationRemovalActivity.java中的populateAPIList里增加一个菜单项:
arrAPIs.add(new ListItem(count++,      getString(R.string.api_install_application_in_container),      APIType.DISPLAY_NUMERIC_EDITTEXT_POPUP,      KnoxSDKVersion.VER_2_0,      getString(R.string.api_install_application_in_container),      getString(R.string.enter_container_id), "", null, null, null));
  • 在ContainerCreationRemovalModel.java中的
invokeKNOXAPI(ListItem listItemObj, String userEnteredData, ActivityLauncher activityLauncher)

方法中增加一个case 6, 这个增加的switch的case就对应了上面增加的一个可按的List。

5. 后记


  1. 体验过后发现,三星的KNOX Container确实比Google开发的Android容器(Android for Work)功能更强,更多,安全性能也更好。

  2. Android for Work目前是Android默认的容器技术,而KNOX Container只能存在于三星的移动设备(手机或平板)上。所以如果你不是用三星的设备来做开发,那么KNOX Container就用不上了。


我是谢恩铭,在巴黎奋斗的软件工程师。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」

更多相关文章

  1. 和菜鸟一起学android4.0.3源码之红外遥控器适配
  2. 围观:开发者不容错过的十二大Android开发资源
  3. 按下电源键到启动Home应用过程详解(一)
  4. iOS 开发者的 Android(安卓)第一课
  5. android Button设置text属性为字母时,字母自动变成大写
  6. android窗体加载过程剖析之消息处理的注册机制
  7. 开发者应如何看待iOS平台和Android平台
  8. Android(安卓)网络框架之Retrofit2使用详解及从源码中解析原理
  9. Android(安卓)针对个人开发者的bmob支付

随机推荐

  1. Android下载并打开pdf文件
  2. android布局属性: android:visibility
  3. android 模拟器无法启动问题解决
  4. Android Handler.postDelayed 挖坑记
  5. Android 报错处理:not attached to window
  6. Android Building Apps with Over 65K Me
  7. android studio升级到3.0.1后apt报错解决
  8. 获得android keystore的SHA1值
  9. android 利用环形菜单制作带数字表盘的时
  10. android pull解析xml最简单的方法