Skip to content

Instantly share code, notes, and snippets.

@bathtimefish
Last active August 29, 2015 14:20
Show Gist options
  • Save bathtimefish/c32f94c09a062f3d7c05 to your computer and use it in GitHub Desktop.
Save bathtimefish/c32f94c09a062f3d7c05 to your computer and use it in GitHub Desktop.
Recon Jet用のmobile-chrome-appsサンプルをつくってみたら動いた

ReconJet アプリをMobile Chrome Appで開発する例

Recon用ADBはJetのストレージ内にある

http://www.reconinstruments.com/developers/resources/downloads/

/ReconApps/Developer/adb4mac にある これをMacにコピーしてadb-reconにリネームしてパスを通した

$ adb-recon kill-server
$ adb-recon devices

Jetをしばらく放置するとNo Deviceになることがある。 その場合Jetを何か操作してから上記をやるとデバイスが検知される

CCAでプロジェクトを作成する

$ cca create CcaExample com.bathtimefish.cca.hello "CCA Example"
$ cd Ccaexample
  "android": {
      // Android:versionCode:
      // * 0 - multi architecture
      // * 2 - arm
      // * 4 - x86
      // * 9 - APK using system webview and minSdkVersion >= 20
      "versionCode": 2
  },

ビルドとインストール

$ cca build android
$ cd platforms/android/build/outputs/apk
$ adb-recon install android-armv7-debug.apk

再ビルド 再インストール

$ cca build android
$ cd platforms/android/build/outputs/apk
$ adb-recon uninstall com.bathtimefish.cca.hello
$ adb-recon install android-armv7-debug.apk

Recon Jet 画面スクリーンショットの撮り方

  1. OKボタン(前ボタン)長押し
  2. 上にスワイプ

/Pictures/ScreenShotsに保存される(Android File Transferの再接続が必要かも) Recon UplinkのSyncでPCにコピーされる

<!DOCTYPE html>
<html>
<head>
<title>Hello, Mobile!</title>
<link rel="stylesheet" href="recon.css" type="text/css" />
</head>
<body>
<div class="container">
<div class="row">CPU: <span id="cpu">Unknown</span></div>
<div class="row">Memory: <span id="memory">Unknown</span></div>
<div class="row">Display: <span id="display">Unknown</span></div>
<div class="row">Storage: <span id="storage">Unknown</span></div>
<div class="row">IP Address: <span id="network">Unknown</span></div>
</div>
<script src="main.js"></script>
</body>
</html>
// output UserAgent infomation to console
var ua = navigator.userAgent;
console.log('!!!--- UserAgent ---!!!');
console.log(ua);
console.log('!!!--- /UserAgent ---!!!');
// get CPU Info
chrome.system.cpu.getInfo(function(cpu) {
var modelName = cpu.modelName;
document.querySelector('span#cpu').innerHTML = modelName;
});
// get Memory Info
chrome.system.memory.getInfo(function(memory) {
var capacity = memory.capacity;
var available = memory.availableCapacity;
var info = available + ' / ' + capacity;
document.querySelector('span#memory').innerHTML = info;
});
// get Display Info
chrome.system.display.getInfo(function(info) {
console.log(JSON.stringify(info));
var boundary = info[0].bounds;
var width = boundary.width;
var height = boundary.height;
var display = width + ' X ' + height;
document.querySelector('span#display').innerHTML = display;
});
// get Storage Info
chrome.system.storage.getInfo(function(info) {
console.log(JSON.stringify(info));
var capacity = info[0].capacity;
document.querySelector('span#storage').innerHTML = capacity;
});
// get Network Interfaces
chrome.system.network.getNetworkInterfaces(function(info) {
console.log(JSON.stringify(info));
var ip = info[1] // v4
document.querySelector('span#network').innerHTML = ip.address;
});
{
"name": "CCA Example",
"description": "A Sample Chrome App",
"manifest_version": 2,
"minimum_chrome_version": "23",
"version": "0.1.1",
"offline_enabled": true,
"icons": {
"16": "assets/icons/icon16.png",
"36": "assets/icons/icon36.png",
"48": "assets/icons/icon48.png",
"57": "assets/icons/icon57.png",
"72": "assets/icons/icon72.png",
"96": "assets/icons/icon96.png",
"114": "assets/icons/icon114.png",
"128": "assets/icons/icon128.png",
"144": "assets/icons/icon144.png"
},
"app": {
"background": {
"scripts": [
"background.js"
]
}
},
"permissions": [
"<all_urls>",
"system.cpu",
"system.memory",
"system.display",
"system.storage",
"system.network"
]
}
{
"packageId": "com.bathtimefish.cca.hello",
"android": {
"versionCode": 2
},
"ios": {
},
}
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background-color: #000;
color: #fff;
font-family: Arial, sans;
font-size: 1.3em;
}
div#container {
width: 100%;
margin: 20%;
text-align: center;
}
div#row {
margin: 20px 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment