查看Google Glass 笔记的源代码
←
Google Glass 笔记
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 硬件 == * 处理器: TI OMAP4430 * 内存: Elpida mobile DRAM 1GB (最新的为 2GB) * 闪存: SanDisk 16GB * 显示: Himax HX7309 LCOS(Liquid Crystal on Silicon,硅基液晶),Field Sequential Color display (FSC),640x360,控制器有可能是 [http://www.himaxdisplay.com/en/product/HX7812.asp Himax HX7812],通过MIPI (DSI)与OMAP4430连接 * 摄像头: 500万像素 * WiFi: WM-BN-BM-04-a,WLAN +BT+FM 三合一模块,WiFi与处理器的接口为SDIO/SPI * 蓝牙: WM-BN-BM-04-a,WLAN +BT+FM 三合一模块,BT与处理器的接口为UART(串口) * GPS: [http://www.csr.com/products/35/sirfstariv-gsd4e SiRFstarIV GSD4e GPS],与处理器的接口为UART(串口) * 触摸控制器: Synaptics T1320A * 陀螺和罗盘: [http://www.invensense.com/mems/gyro/mpu9150.html InvenSense MPU-9150 9轴陀螺仪] * 加速度传感: ST LIS3 * 话筒: [http://www.wolfsonmicro.com/products/mems_microphones/ Wolfson WM7231 MEMS microphone] * 耳机: 骨传导 (Bone Conduction Transducer) * 电源管理: TI TWL6030 (6030B107) * 锂电池: 2.1 Wh (570 mAh) [[文件:Omap4430-blockdiagram.png]] 参考拆解: http://www.catwig.com/google-glass-teardown/ <br><br> == 内核 == 代码位于: https://android.googlesource.com/kernel/omap.git 最早的版本为 XRR02,现在最新的版本为 XRT73B。基于 Linux Kernel 3.0.31 <source lang=bash> $ git branch -a android-omap-tuna-3.0 * glass-omap-xrr02 glass-omap-xrr88 glass-omap-xrt73b master remotes/origin/HEAD -> origin/master remotes/origin/android-omap-3.0 ...... remotes/origin/glass-omap-xrr02 remotes/origin/glass-omap-xrr35 remotes/origin/glass-omap-xrr64b remotes/origin/glass-omap-xrr88 remotes/origin/glass-omap-xrs36 remotes/origin/glass-omap-xrs68 remotes/origin/glass-omap-xrs92 remotes/origin/glass-omap-xrt35 remotes/origin/glass-omap-xrt73b remotes/origin/linux-omap-3.0 remotes/origin/master remotes/origin/sph-l700-fh05 $ head Makefile VERSION = 3 PATCHLEVEL = 0 SUBLEVEL = 31 EXTRAVERSION = NAME = Sneaky Weasel </source> <br><br> == ROM == Google Glass 的 ROM 官方获取地址:https://developers.google.com/glass/tools-downloads/system <source lang=bash> comcat@jackslab:/work/glass/image$ ls -lht boot.img-XE12 glass_1-img-947604.zip -rw------- 1 comcat comcat 344M 3月 19 23:18 glass_1-img-947604.zip -rw------- 1 comcat comcat 4.5M 3月 19 23:07 boot.img-XE12 # XE12 的 ROM 压缩包为 glass_1-img-947604.zip,解压后的内容如下: comcat@jackslab:/work/glass/image$ cd glass_1-img-947604/ comcat@jackslab:/work/glass/image/glass_1-img-947604$ ls android-info.txt boot.img recovery.img system.img userdata.img comcat@jackslab:/work/glass/image/glass_1-img-947604$ ls *.img -lht -rw------- 1 comcat comcat 134M 12月 13 07:04 userdata.img -rw-r--r-- 1 comcat comcat 4.5M 1月 1 2009 boot.img -rw-r--r-- 1 comcat comcat 5.3M 1月 1 2009 recovery.img -rw-r--r-- 1 comcat comcat 477M 1月 1 2009 system.img # boot.img 解开后的内容: comcat@jackslab:/work/glass/image/glass_1-img-947604$ ls boot boot.img-ramdisk.gz kernel # system.img 的内容: comcat@jackslab:/work/glass/image/glass_1-img-947604$ ls system/x/ app bin build.prop etc fonts framework glass_fonts lib media tts usr vendor xbin comcat@jackslab:/work/glass/image/glass_1-img-947604$ find system/x/app/ system/x/app/ system/x/app/ApplicationsProvider.apk system/x/app/ApplicationsProvider.odex system/x/app/BackupRestoreConfirmation.apk system/x/app/BackupRestoreConfirmation.odex system/x/app/CalendarProvider.apk system/x/app/CalendarProvider.odex system/x/app/CertInstaller.apk system/x/app/CertInstaller.odex system/x/app/ContactsProvider.apk system/x/app/ContactsProvider.odex system/x/app/DefaultContainerService.apk system/x/app/DefaultContainerService.odex system/x/app/DownloadProvider.apk system/x/app/DownloadProvider.odex system/x/app/FrameworkStubs.apk system/x/app/FrameworkStubs.odex system/x/app/GlassBluetooth.apk system/x/app/GlassBoutique.apk system/x/app/GlassBrowser.apk system/x/app/GlassCamera.apk system/x/app/GlassDeviceAdministration.apk system/x/app/GlassGesture.apk system/x/app/GlassHangouts.apk system/x/app/GlassHome.apk system/x/app/GlassLockRecovery.apk system/x/app/GlassLogging.apk system/x/app/GlassMaps.apk system/x/app/GlassMusicPlayer.apk system/x/app/GlassPhone.apk system/x/app/GlassPhotosphere.apk system/x/app/GlassSearch.apk system/x/app/GlassSettings.apk system/x/app/GlassSetup.apk system/x/app/GlassSound.apk system/x/app/GlassSystemUI.apk system/x/app/GlassSystemUI.odex system/x/app/GlassTutorial.apk system/x/app/GlassUpdate.apk system/x/app/GlassVideoPlayer.apk system/x/app/GlassVoice.apk ...... ...... </source> <br><br> == Flush ROM == 先在这下载官方的 'Factory System Image': https://developers.google.com/glass/tools-downloads/system 进入 Glass,打开 'Debug mode',USB 线连接 PC: <source lang=bash> $ adb reboot bootloader # enter fastboot mode $ fastboot devices # verify device is in fastboot, should see its serial no. $ fastboot flash boot boot.img # flash partitions with factory images $ fastboot flash system system.img $ fastboot flash recovery recovery.img $ fastboot erase cache # optional, erase the cache and userdata partitition $ fastboot erase userdata $ fastboot oem lock # optional, only if you want to re-lock the bootloader. </source> <br><br> == Root == 先在这下载官方的 Rooted bootloader: https://developers.google.com/glass/tools-downloads/system 进入 Glass,打开 'Debug mode',USB 线连接 PC: <source lang=bash> $ adb reboot bootloader # enter fastboot mode, takes 10-15 seconds $ fastboot devices # verify device is in fastboot, should see its serial # $ fastboot oem unlock # unlocking erases all data, you are prompted to run this command twice to be sure $ fastboot flash boot boot.img # gain root shell access with the rooted bootloader $ fastboot reboot # reboot the device $ adb root # start adb as root $ adb shell # access the shell as root </source> <br><br> == 编译测试环境 == 从 http://www.gradle.org 下载 gradle-1.11-bin.zip ,这是 android app 的命令行编译框架 解压到 /work/glass/gradle/gradle-1.11 用 Android SDK Manager 安装 Android 4.0.3 (API 15) SDK 和 Glass Development Kit Sneak Peek,以及 Android Build Tools 19.0.3,Android SDK 目录位于:/work/android/sdk/android-sdk-linux ~/.bashrc 中导出环境变量: <source lang=bash> # gradle for build android/glass export PATH=/work/glass/gradle/gradle-1.11/bin:$PATH export ANDROID_HOME=/work/android/sdk/android-sdk-linux </source> 建立工作目录,clone GDK的例子代码: <source lang=bash> $ mkdir glass && cd glass $ echo "include ':compass'" > settings.gradle $ git clone https://github.com/googleglass/apk-compass-sample.git compass $ cd compass </source> 建一个如下名为 build.gradle 文件,放在 compass/ 目录下: <pre> buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.1' } } apply plugin: 'android' repositories { mavenCentral() } android { compileSdkVersion "Google Inc.:Glass Development Kit Sneak Peek:15" buildToolsVersion "19.0.3" defaultConfig { minSdkVersion 15 targetSdkVersion 15 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') debug.setRoot('build-types/debug') release.setRoot('build-types/release') } signingConfigs { debug { storeFile file(System.getenv("DEBUG_KEYSTORE")) storePassword 'android' # ------> 与 keytool 生成密钥对的密码一致 keyAlias 'mykey' keyPassword 'android' } } buildTypes { debug { // Using release config... signingConfig signingConfigs.debug } } } </pre> keytool 生成一个 key 文件,生成时所有的密码都为 android,cp 为 /home/comcat/.android/my-debug.keystore <source lang=bash> $ keytool --genkeypair Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: Jack Tan What is the name of your organizational unit? [Unknown]: Jack's Lab What is the name of your organization? [Unknown]: Jack's Lab What is the name of your City or Locality? [Unknown]: Beijing What is the name of your State or Province? [Unknown]: Beijing What is the two-letter country code for this unit? [Unknown]: CN Is CN=Jack Tan, OU=Jack's Lab, O=Jack's Lab, L=Beijing, ST=Beijing, C=CN correct? [no]: yes Enter key password for <mykey> (RETURN if same as keystore password): Re-enter new password: $ cp ~/.keystore ~/.android/my-debug.keystore </source> ~/.bashrc 中导出环境变量: export DEBUG_KEYSTORE=/home/comcat/.android/my-debug.keystore 在 glass/ 目录下执行: $ gradle build 运行,google glass 没有模拟器,只能push到实体硬件上去测试: 要让adb发现glass,得打开glass的调试模式: <pre> 进入 Settings card ---> 'Device Info' card ---> 'Turn on debug' $ adb devices List of devices attached 0256E86EE2500E920 device </pre> 安装: <source lang=bash> $ adb install -r compass/build/apk/compass-debug.apk $ adb shell am start -n com.google.glass.samples.compass/.CompassActivity </source> 查看安装的APP: <source lang=bash> $ adb shell pm list packages | grep jacks package:com.jackslab.helloworld </source> 卸载: <source lang=bash> $ adb uninstall com.jackslab.helloworld Success </source> <br><br> == Hello World == Write Your First Glassware 代码位于: https://github.com/comcat/glassware/tree/master/helloworld <br><br> == 参考 == * Compile Glass Launcher from Source: http://anewdomain.net/2014/01/01/google-glass-compile-glass-launcher-source/ * XDA glassware: https://docs.google.com/spreadsheet/ccc?key=0Ag4bwtz-3pKhdFFZdzlweWFHaE41WmY3OGllRC03WEE&usp=drive_web#gid=0 * Android Tools Project Site: http://tools.android.com/tech-docs/new-build-system/user-guide * Managing Projects from the Command Line: http://developer.android.com/tools/projects/projects-cmdline.html * Building and Running from the Command Line: http://developer.android.com/tools/building/building-cmdline.html * Signing Your Applications: http://developer.android.com/tools/publishing/app-signing.html * Sign your apk: http://stackoverflow.com/questions/18328730/how-to-create-a-release-signed-apk-file-using-gradle * Send Anything to Glass with only TASKER: http://forum.xda-developers.com/showthread.php?p=52595646 <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
Google Glass 笔记
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面