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

10 6月

前言

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

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

>> 接着看呗

Dagger2 in Android(二)进阶

10 6月

前面已经讲了 Dagger 的基础注解,并且最后我们也搭建了一个最简单的 Dagger 注入。

这一篇我们继续学习 Dagger 更多的注解,以及如何模块化地管理。这些将帮助我们妥善组织不同的组件、明确各自的生命周期。

@Named

依赖注入迷失

之前说过 @Module@Provid[......]

>> 接着看呗

Dagger2 in Android(一)通俗基础

9 6月

背景知识

Dagger2 是一个由 Google (之前是 Square)维护的开源依赖注入框架。我曾两次试图学习 Dagger 最终被乱七八糟的名词弄得晕头转向,连个 demo 都没写出来就放弃了。所以本文也会重点解释 Dagger 的各个名词,只有熟悉了它们的作用,才能顺畅无阻地使用,也才能看[……]

>> 接着看呗

JS in Android (Google V8)

4 6月

简介

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

>> 接着看呗

用cocos2d-js制作WearOS表盘

18 10月

这只是一次实验

众所周知,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 文件。

[……]

>> 接着看呗

三星手表(tizen)运行cocos2d-js

29 9月

智能手表的沙场

提到智能手表,除去一些轻智能设备,苹果的 Apple Watch,谷歌的 Wear OS,三星的 Tizen 基本上垄断了这个市场。苹果依赖于封闭的体系,手表生态自然无需担心。Wear OS 依赖于 Android,开发一个手表应用也很简单。但是三星就很烦人了。Tizen 对大多数开发者来说很陌生,它基于 Linux 的开源操作系统。虽然早在2012年发布,却每况愈下,目前除了三星手表应该几乎没有 tizen 的设备了。

Tizen 其实很不完善,尤其在手表上。他甚至没有一套自己的 UI 系统,只是使用了一些开源的库。更别提什么 Material Design 这种现代化的东西了。Tizen 使用 c++ 开发,UI 要靠代码写。只是官方的 Demo 就看的云里雾里,更别提写出一套程序了。
[……]

>> 接着看呗