— 作者 謝恩銘 轉載請註明出處
內容簡介
- 前言
- 三星的KNOX容器例子app
- 我改動後的原始碼
- 主要的改動
- 後記
1. 前言
上一篇【Android資訊安防】三星KNOX容器(1)中, 我們簡介了Android的容器概念和三星的KNOX容器, 這次我們要來看一下建立KNOX容器的例子app, 以及我的實現。
下文中Container和容器可以互換。因為容器的英語就是Container。
不過今天這裡講的三星KNOX和KNOX的容器技術, 如果你不是用三星手機, 那麼基本不太會接觸。
2. 三星的KNOX容器例子app
三星官網的KNOX Container使用手冊頁面
你需要首先註冊一個三星開發者賬號。建立成功之後,登入。然後在你的開發者後臺可以建立和管理你的開發者License(證照)。
三星提供了一個開放原始碼的Container例子app,在這裡 ,不過須要首先登入開發者賬戶才能獲取。
這個例子app就是一個Android專案,把它用Android Studio執行起來,使用截圖如下所示:
我的app擴充了三星的KNOX Container(容器)例子app , 加入了新功能:
- 在把app遷移到Container之前儲存app的資料
- 遷移app到Container
- 匯入儲存的資料到Container中的app
(因為app從Container外遷移到Container裡,會首先刪除所有資料)
3. 我改動後的原始碼
原始碼在我的Github上:
有時間可以研究一下原始碼,如果是做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. 後記
-
體驗過後發現,三星的KNOX Container確實比Google開發的Android容器(Android for Work)功能更強,更多,安全效能也更好。
-
Android for Work目前是Android預設的容器技術,而KNOX Container只能存在於三星的移動裝置(手機或平板)上。所以如果你不是用三星的裝置來做開發,那麼KNOX Container就用不上了。
人世間,
萬千情感皆有溫度,
千萬程式碼似有性格。
這裡有原創教程,IT叢林……
和你一起探索程式人生。
微信公眾號「程式設計師聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的嵌入式軟體工程師。
個人簡介
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:“向著標杆直跑”