Gaia作为用户的接口,也是用户可见部分,一些用户的应用也是安装在这一层,所以研究他是很有必要的,对于像我这样的初学者,最直接的学习方法就是通过修改代码,然后可以看到UI的变化,很直观的观察修改结果。由于手里没有Firefox OS的真机,所有都是在模拟器上实现。

1.默认编译

直接切换到gaia目录下:

make

2.Debug 编译

DEBUG=1 make

这一部分具体的作用,我用模拟器暂时没有弄明白。

3.编译同时安装设备

make install-gaia
make reset-gaia

他们都是通过adb把gaia push 到设备中的。make reset-gaia 则是push gaia之前,把设备中profile 和apps 清空,相当于清空cache分区。 注意:reset-gaia对于真机存在一定的风险的,可能导致真机变砖头哦
这里说明下:编译过后,会产生profile文件夹和profile.tar.gz文件,具体内容就是把apps 打包。

4.单个app编译

APP=system make

APP=system make install-gaia

单个app编译需要两个前提:a.gaia 必须全部编译过一次,即必须存在profile文件夹;b.要编译的app必须放在/gaia/apps/下面,system就是apps/内部的文件。APP=system make install-gaia 编译的同时也把system push 到设备中了。

=====================================预装app相关=====================================

1.delete many apps

只要修改Makefile中

GAIA_APP_SRCDIRS=apps test_apps showcase_apps 

apps,teset_apps,showcase_apps是gaia下面的三个文件夹,里面含有不同的应用。这相当于批量删除预装apps。

2.delete one app

方法很简单,只要把app文件夹下的manifest.webapp 删除掉就可以了。

3.add one app

在apps,test_apps,showcase_apps任一目录新建一个app工程即可。manifest.webapp是工程必须,它当于android apk的manifest.xml和Android.mk的结合。

4.app many apps

a.在gaia目录下新建preload_apps文件夹

b.在preload_apps下新建preload1,preload2,preload3工程

c.在Makefile 中GAIA_APP_SRCDIRS= apps test_apps showcase_apps preload_apps

d.make reset-gaia

参考文章:

Hacking Gaia

[置顶] Firefox OS 学习——Gaia 编译分析的更多相关文章

  1. [置顶] Firefox OS 学习——manifest.webapp结构分析

    在Firefox OS 学习——Gaia 编译分析  这篇文章多次提到manifest.webapp文件,对于做过android app 开发的人来说,都很熟悉Android.mk 和Manifest ...

  2. [置顶] Firefox OS 学习——简单了解知识

    什么是Firefox OS ? Firefox OS 是一个为网页设计而生的能编译和独立的手机网页操作系统,我们相信在接下来的时代,网页应用将充满整个新兴操作设备,这也为当前许多网页开发者不需要太多的 ...

  3. [置顶] Deep Learning 学习笔记

    一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不 ...

  4. [置顶] Effective STL 学习笔记

    看Effective STL 作的一些笔记,希望对各位有帮助. 以下是50条条款及相关解释. 容器 1. 慎重选择容器类型,根据需要选择高效的容器类型. 2. 不要试图编写独立于容器类型的代码. 3. ...

  5. [置顶] Spring的DI依赖实现分析

    DI(依赖注入)是Spring最底层的核心容器要实现的功能之一,利用DI可以实现程序功能的控制反转(控制反转即程序之间之间的依赖关系不再由程序员来负责,而是由Spring容器来负责) 一个简单的例子( ...

  6. [置顶] Ajax 初步学习总结

    Ajax是什么 Ajax是(Asynchronous JavaScript And XML)是异步的JavaScript和xml.也就是异步请求更新技术.Ajax是一种对现有技术的一种新的应用,不是一 ...

  7. [置顶] C语言学习入门

    编译文件:cc -c one.c two.c  生成.o目标文件 链接文件:cc one.o two.o     默认生成 a.out 执行文件 指定生成的可执行文件名   cc -o one one ...

  8. [置顶] JQuery插件学习教程

    这是JQuery其它常用插件的视频教程,包括validate插件,.comet插件等.同时有大量实例项目,如果你是喜欢JQuery的童鞋千万不要错过. 教程的内容有: 1_validate插件(1) ...

  9. [置顶] Android开发之Thread类分析

    在我们Linux系统中创建线程函数为:pthread_create(),在Android中我们为线程封装了一个类Thread,实际调用的还是pthread_create() 当我们想创建线程的时候,只 ...

随机推荐

  1. HTML-点击收藏功能模块

    先上效果图: 功能简单: 附上源码以及注解 <div class="info-attribute" id="collect"> <input ...

  2. 【转】自动布局之autoresizingMask使用详解(Storyboard&Code)

    原文:http://www.cocoachina.com/ios/20141216/10652.html 自动布局Autolayoutstoryboard 前言:现在已经不像以前那样只有一个尺寸,现在 ...

  3. Swift - 02 - 常量和变量

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  4. JavaScript--对象-检查一个对象是否是数组

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. qt实现类似QQ伸缩窗口--鼠标事件应用

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://blog.csdn.net/hiwubihe/article/details/38678305,qq:1269122125. 上一章 ...

  6. 汇编程序w=x*y+z-200

    DATA   SEGMENTX      DW  1000Y      DW  2000Z      DW  3000W      DW  2 DUP(?)DATA   ENDSCODE   SEGM ...

  7. MPICH2在两台Ubuntu上安装

    本文在经过大量的实验终于不负众望成功的在两台Ubuntu 12.04上部署MPI的一个小型集群,MPICH2所用版本为mpich2-1.4.1,下载地址:http://www.mcs.anl.gov/ ...

  8. input border IE6 bug

    border:none;与border:0;的区别体现有两点:一是理论上的性能差异二是浏览器兼容性的差异. 1.性能差异[border:0;]把border设为“0”像素虽然在页面上看不见,但按bor ...

  9. Mysql 数据类型使用说明

    FLOAT 和DOUBLE 类型支持使用标准的浮点运算进行近似计算. DECIMAL类型用于存储精确的小数. 因为cpu不支持对DECIMAL的直接计算,所以在Mysql5.0及更高的版本中,MYSQ ...

  10. date命令详解与练习

    date : 用来打印或设置系统日期和时间. 它在linux shell编程中经常会用到.比如每天生成随日期变化的档案名,尤其在银行业务中每天都会生成流水文件.eg:datefile=$(date & ...