Dagger2 in Android(三)Scope与生命周期

前言

之前我们已经学习了 Dagger 的基础知识、模块化管理,本章将是 Dagger 基础使用的最后一章。

Scope 被误称 Dagger 的黑科技,但实际上它非常简单,但错误理地解它的人却前仆后继。希望小伙伴们认真阅读这一章,第一次学习时一定要正确理解,不然后边再纠正会感觉世界观都被颠覆了[……]

>> 接着看呗

JS in Android (Google V8)

简介

由于项目动态化的需要,希望在 Android 应用中嵌入脚本语言。常见有 LuaJs。Lua 的集成在之前的文章中已经介绍过。lua 是一个非常轻量的语言,专为嵌入而生,这是他的优势。但因为太轻了,可以说几乎没有标准库,这也使得用起来不是很方便。但目前最大的问题是 lua 脚本无法完美[……]

>> 接着看呗

用cocos2d-js制作WearOS表盘

这只是一次实验

众所周知,cocos2d 属于游戏引擎,本身就不适合运行在手表,而直接把他当做表盘当然就更不合适了。这里只是一个突发奇想,借助 cocos 强大的渲染与跨平台特性,看看能否做出一款表盘。

要做到这一步需要解决两个问题:

  1. 将 cocos 编译到 Android.
  2. 将容器由 Activity 转到表盘。

倒弄了一天,仅仅是成功运行起来了,还有许许多多的问题需要解决,例如效率问题、内存释放问题等等。

当前环境:

  • Win10
  • Cocos2d-js 3.17
  • Android Studio 3.2
  • Wear OS 2.x

完成本项目需要了解 Android 开发知识,最好还了解 WearOS 表盘开发。

编译到 Android

其实是这一步就足够再写一篇文章了,有许多隐藏的坑,牵扯到 Android NDK, JNI 等许多知识。不过这并不是本文的重点,简单写一下。

为了不影响 Cocos2d 自带的 demo,我们要编译出 .so 库文件,然后新建一个工程引用。

打开 Android Studio,点击 File - Open,选择 cocos 项目根目录下 frameworks/runtime-src/proj.android 即可打开自带的 Android 工程。注意,默认情况下只编译 armeabi-v7a 的库,这个只能用于手机而不能用于模拟器。为了调试方便我们要他把 x86 也给编译了。修改 proj.android/gradle.properties 文件,找到 PROP_APP_ABI 新增一个 x86 格式:

# List of CPU Archtexture to build that application with
# Available architextures (armeabi-v7a | arm64-v8a | x86)
# To build for multiple architexture, use the `:` between them
# Example - PROP_APP_ABI=armeabi-v7a:arm64-v8a:x86
PROP_APP_ABI=armeabi-v7a:x86

点击 Build - Rebuild project 就开始编译啦~ 编译很慢,十几分钟吧。

编译成功后可以在 proj.android/app/build/intermediates/ndkBuild/debug/obj/local 下找到各个平台的 so 文件。与此同时也可以在 intermediates/assets/debug 下找到后边需要的 js 文件。

[……]

>> 接着看呗