依赖环境
安装Android Studio 4.0+
OpenJDK 1.8 (单独安装,或者复用Android Studio内置,/Applications/Android Studio 4.0 Preview.app/Contents/jre/jdk/Contents/Home)
Clang
CMake 3.10.2 (复用Android Studio内置,/Users/your_name/Library/Android/sdk/cmake/3.10.2.4988404/bin/cmake) 
Ninja 1.8.2(复用Android Studio内置,/Users/your_name/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja) 
NDK(复用Android Studio内置,/Users/your_name/Library/Android/sdk/ndk/21.0.6113669/ndk-build)
配置~/.bash_profile,并执行 source ~/.bash_profile
export JAVA_HOME=/Applications/Android\ Studio\ 4.0\ Preview.app/Contents/jre/jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$JAVA_HOME/jre/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
export ANDROID_HOME=/Users/liuzhixu/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/build-tools/28.0.3:$PATH
export NDK=$ANDROID_HOME/ndk/21.0.6113669
export PATH=$NDK:$PATH
export CMAKE_HOME=${ANDROID_HOME}/cmake/3.10.2.4988404/bin
export PATH=$CMAKE_HOME:$PATH
编译前注意事项
通用依赖简单粗暴编译:把桌面debug和release版本全编译,会产生通用工具
./build.sh -i -p desktop debug
编译产出out/cmake-debug/,install产出out/debug/filament/
重要:out/cmake-debug/samples/ 桌面级3D案例,可以直接运营看效果
./build.sh -i -p desktop release (按照下面修改配置,可以不用编译)
android/build.gradle 把android-release改成android-debug def filamentPath = file("../out/android-debug/filament").absolutePath
android/buildSrc/src/main/groovy/FilamentPlugin.groovy,把release改成debug project.file("../../../out/debug/filament")
安卓编译命令及背后流程 ./build.sh -i -p android debug
@filament-1.5.2/build.sh

@filament-1.5.2/android/filamat-android/build.gradle
@filament-1.5.2/android/filament-android/build.gradle
@filament-1.5.2/android/filament-utils-android/build.gradle   
@filament-1.5.2/android/gltfio-android/build.gradle

特定函数及编译产出文件
build_desktop "${MOBILE_HOST_TOOLS}"      编译产生make-debug/ 主要是桌面级辅助工具,如matc材质编译器,cmgen等;如果执行过./build.sh -i -p desktop debug,此处编译多余,实际上不会再编译
build_android_arch "aarch64" "aarch64-linux-android"      编译产生两个目录:
cmake-android-debug-aarch64目录,编译结果存在对应子目录,跟源码层级目录对等,容易理解;
android-debug/filament/目录,编译后自动安装的include头文件和lib/*.a库文件
./gradlew   编译安卓通用AAR工程
一切成功,可以用Android Studio打开工程
Android Studio -> Open an existing Android Studio project -> filament-1.5.2->android/
渲染感兴趣的demo,如simple-lit-cube,运行看看效果吧~
TODO
后续会介绍如何自定义c++代码,打开log开关,暴露更多libs/ third_party/接口,如何引入新的C++库,如何抛弃android/目录代码,全新定义JNI框架等

深入浅出filament Android编译脚本相关推荐

  1. android编译脚本下载,Android编译 Fak_aac心路历程

    下载官方库 编译脚本 #!/bin/sh NDK_ROOT=/Users/momo/Library/Android/sdk/ndk-bundle ANDROID_API_VERSION=15 NDK_ ...

  2. Android编译脚本(.mk文件)解析

    摘要:本文将简单介绍Android编译系统并举例说明如何编写不同类型的mk文件以达到不同的目的.虽然.mk文件即将被.bp文件替代,但是在Android9之前的版本中.mk文件的使用频率依旧很高,同时 ...

  3. Filament Android 编译搭建(基于Ubuntu环境)

    说明 To build Filament, you must first install the following tools: CMake 3.19 (or more recent) clang ...

  4. Android编译及编译脚本、Android构建基础学习笔记

    Android编译及编译脚本.Android构建基础学习笔记 Android编译及编译脚本 概述 Android.mk转换成Android.bp 例子(简单Android.mk文件转Android.b ...

  5. android.mk ndk编译选项优化,Android NDK 编译脚本分析 之一

    版权信息:本文为本人原创,欢迎转载,但请著明出处,并保留本版权信息. Android NDK编译脚本编写起来还是是比较简单条理的,然而它的语法和传统的linux GNU Make编译脚本的编写似乎有很 ...

  6. 【Android开发】之编译脚本Makefile编写

    摘抄自:https://blog.csdn.net/SoaringLee_fighting/article/details/84037468 略加部分修改完善. 1.NDK编译C/C++ Native ...

  7. Android NDK学习(二):编译脚本语法Android.mk和Application.mk

    一.Android.mk Android.mk分为一下几部分: LOCAL_PATH:= $(call my-dir), 返回当前文件在系统中的路径,Android.mk文件开始时必须定义该变量. i ...

  8. android lichee编译脚本解析

    #编译流程 #lichee 目录下 ./build.sh -p sun7i_android -k 3.4 1 2 3 #build.sh 解析#!/bin/bash set -e #"Exi ...

  9. cocos2dx3.8 android打包脚本编写

    cocos集成了打包命令 cocos compile -p android 在这里并没有采用这个方案,而是编写自己的脚本, 理由如下 脚本掌握在自己手中可以第一时间解决和发现bug 游戏项目总会出现各 ...

最新文章

  1. Ubuntu16 安装Jira
  2. Configured default database db1 doesn‘t exist in catalog myhive.
  3. JS 循环遍历 总结
  4. (转)编码剖析Spring管理Bean的原理
  5. mysql中怎么表示100美元_MySQL 事物,美国服务器
  6. Web_add_cookie的作用
  7. 在ubuntu 下 编译 在windows 下面使用的adb
  8. 【非常有用=小白也可以简单操作】越狱系统中可以让多个Kindle应用程序同时使用的办法--自己......
  9. 验签传时间戳目的_不瞒你说:买来的海鸭蛋,一戳就流油,被中央台频频“曝光”,秘密终被解开...
  10. 支持VS2017的vax插件VA_X_Setup2210
  11. sobel算子进行边缘检测
  12. xp计算机如何共享打印机,在XP系统下怎么设置俩台电脑或多台电脑共享一个打印机?...
  13. 电脑本地进行演讲者模式预览快捷键
  14. 自步学习-Self-paced Learning
  15. wx.createSelectorQuery() 获取节点信息 获取不到解决方法
  16. 中国无尘室饮水机市场趋势报告、技术动态创新及市场预测
  17. 思维模型 黄金圈法则
  18. EditText属性大全
  19. 手机网游制造之请求处理篇(已发《电脑报》)
  20. Python在高等数学中的运用

热门文章

  1. Python cv2.minMaxLoc方法代码示例
  2. VB.net 删除文件、文件夹
  3. Win11安装Android子系统
  4. ALTERA的配置方式简介
  5. 凯撒密码---最简单的加密方式之一
  6. transitive dependencies (if any) will not be available, enable debug logging for more details
  7. texturepacker 打包图集
  8. Android存入mysql数据库中文乱码解决方法的超级坑
  9. 表达式计算: 分析与设计
  10. 曼尼托巴大学计算机科学硕士,加拿大曼尼托巴大学优势专业有哪些