Skip to content

Commit 8b3755c

Browse files
author
minggo
authored
[ci skip]Changelog releasenote (cocos2d#17695)
* update release note * update toc * update changelog
1 parent 77724d3 commit 8b3755c

File tree

3 files changed

+138
-22
lines changed

3 files changed

+138
-22
lines changed

CHANGELOG

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,73 @@
1+
cocos2d-x-3.15 Apr.21 2017
2+
3+
[NEW] Full support of Android Studio, can use Android Studio to edit, compile and debug C++ codes
4+
[NEW] Audio Engine: use `tremolo` to decode audio files to be more adaptable to Android devices and improve performance on Android
5+
[NEW] WebSockets and SocketIO supports SSL
6+
[NEW] WebSockets: add methods to get url and server selected protocol
7+
[NEW] Add `utils::getFileMD5Hash()`
8+
9+
[REFINE] EventDispatcher: use `std::stable_sort()` to sort nodes and listeners
10+
[REFINE] FileUtils: add async version of common methods
11+
[REFINE] Label: full unicode support
12+
[REFINE] Renderer: enable VAO by default on Android
13+
[REFINE] Renderer: use std::stable_sort() to sort commands
14+
[REFINE] Scheduler: `unscheduleAll()` will unschedule selectors that scheduled with `performFunctionInCocosThread()`
15+
[REFINE] SpriteFrameCache: avoid load frames if they are already loaded
16+
[REFENE] Texfield: not use auto correction on iOS now
17+
[REFINE] TextureCache: allow to unbind asynchronous texture loading callback with a custom key
18+
[REFINE] WebSockets: each connection will create a virtual host
19+
[REFINE] WebView: can clean cached data
20+
[REFINE] WebSockets: allow self-assign certification
21+
[REFINE] 3rd: update OpenSSL to v1.1.0
22+
[REFINE] 3rd: update flatbuffer to v1.5
23+
[REFINE] 3rd: Update Spine runtime to v3.5.35
24+
[REFINE] Remove support for Windows 8.1 store and phone
25+
[REFINE] Remove 32-bit linux support
26+
27+
28+
[FIX] Action: spawn action may be invoked more times than specified
29+
[FIX] Audio engine: can not play audios in the callback set in `AudioEngine::setFinishedCallback()` on iOS, Mac and win32
30+
[FIX] Audio engine: crash if uncache audios in finish callback on Android
31+
[FIX] Audio engine: crash if playing very small mp3 audios on Android
32+
[FIX] Audio engine: may crash if repeat doing `play -> stop` on iOS and Mac
33+
[FIX] Audio engine: play2d may still wait 2 seconds if preload is too fast
34+
[FIX] Audio engine: preload many audios may cause crash on devices that use Samsung Exynos CPU
35+
[FIX] Application: `openURL()` return wrong valueo on Linux
36+
[FIX] Core: out scene's `onEnterTransitionDidFinish` is not triggered if using transition scene with `Director::runWithScene()`
37+
[FIX] CheckBox: can receive touch up event that is released far from it
38+
[FIX] Downloader: is not thread safe and may cause rondom crash on Android
39+
[FIX] DrawNode: can't change opacity
40+
[FIX] GLProgram: memory leak
41+
[FIX] HttpClient: may crash on Android 4.2
42+
[FIX] Label: ttf font line wrap
43+
[FIX] Label: wrong effect if ttf font line gap is not 0
44+
[FIX] Label: memory leak with ttf font
45+
[FIX] Label: call `disableEffect()` many times will compress the label to one character
46+
[FIX] Mesh: enable depth write by default
47+
[FIX] Node: calling `reorderChild()` does not update touch lister with scene graph priority
48+
[FIX] PageView: `getCurrentPageIndex()` returns -1 when created and haven't scrolled
49+
[FIX] Physics2d: can not apply velocity to kinematic bodies
50+
[FIX] Scheduler: an unscheduled selector may be invoked many times
51+
[FIX] Scheduler: selector is not moved in time
52+
[FIX] Simple Audio Engine: `unloadEffect()` doesn't work on Android 5.0.1 devices
53+
[FIX] Simple Audio Engine: `ConcurrentModificationException`
54+
[FIX] SokcetIO: use wrong default port for connection
55+
[FIX] Sprite: texture and shader lost after restore from background on Android if using ETC1
56+
[FIX] WebSockets: memory leak
57+
[FIX] WebSockets: doesn't parse url correctly
58+
[FIX] WebSockets: may crash in random
59+
[FIX] Vec4: error logic of operator '<'
60+
[FIX] Android: accelerometer uses wrong time accuracy
61+
[FIX] iOS: may crashed if multiple OpenGL ES contexts coexist
62+
[FIX] Windows: bad performance
63+
[FIX] Windows: link error when compiling in release mode
64+
[FIX] Lua: content after '\0' of a string is cut off when passing a string to C++ or vice versa
65+
[FIX] Lua: lua_cocos2dx_Widget_addTouchEventListener crashed
66+
[FIX] Lua: can not get binary data from file
67+
[FIX] JSB: XMLHttpRequest supports notifying progression
68+
[FIX] JSB: invoke `jsb.reflection.callStaticMethod` many times will cause `JNI max table=512` exception on Android
69+
[FIX] Others: `download_deps.py` depends on git command
70+
171
cocos2d-x-3.14.1 Jan.19 2017
272

373
[FIX] May crash if using `Scene::createWithPhysics()` to create a scene and physics3d camera is not set

docs/RELEASE_NOTES.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424

2525
## Highlights
2626

27-
* full Android Studio supports: include editing, compiling and debugging c++ codes
28-
* use [tremolo](http://wss.co.uk/pinknoise/tremolo/) to decode audio files on Android: high performance and more adaptable to different Android devices
29-
* WebSockets and SocketIO supports SSL
27+
* full __Android Studio__ supports: include editing, compiling and debugging c++ codes: [doc](https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/installation/Android-Studio.md)
28+
* audio engine uses [tremolo](http://wss.co.uk/pinknoise/tremolo/) to decode audio files on Android: high performance and more adaptable to different Android devices
29+
* __WebSockets__ and __SocketIO__ supports SSL
3030
* AssetsManagerEx is more stable
31-
* update Spine runtime to v3.5.35
32-
* update flatbuffer to v1.5
31+
* update __Spine runtime__ to v3.5.35
32+
* update __flatbuffer__ to v1.5
3333
* remove support for Windows 8.1 store and phone
34-
* update OpenSSL to v1.1.0
34+
* update __OpenSSL__ to v1.1.0
3535
* remove linux 32-bit support
3636

3737
## Feature in detail
@@ -40,13 +40,13 @@
4040

4141
Since v3.15, can use Android Studio 2.3+ to edit, compile and debug c++ codes. What you need to do is just use Android Studio to open `proj.android-studio`(such as `tests/cpp-empty-test/proj.android-studio`), then click run menu button to run on Android devices or simulators.
4242

43-
![android-studio-support.png](todo)
43+
Please refer to [this doc](https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/installation/Android-Studio.md) for detail usage.
4444

45-
### Audio engine improve on Android
45+
### Audio engine improved on Android
4646

4747
Before v3.15, new Audio engine uses OpenSL ES to decode and play audio files. But many Android device manufacturers modify OpenSL ES decoding codes which cause issues. [This thread](http://discuss.cocos2d-x.org/t/android-audio-decoding-issues-discussion/34610) lists many issues caused by it.
4848

49-
In order to fix these issues, we decide to use a 3rd party audio decoding library. [tremolo](http://wss.co.uk/pinknoise/tremolo/) which is used by Android have good performance and stability. We finally choose to use it. What's exciting is what, after using `tremolo`, the audio engine's performance is highly improved too.
49+
In order to fix these issues, we decide to use a 3rd party audio decoding library [tremolo](http://wss.co.uk/pinknoise/tremolo/), which is used by Android have good performance and stability. What's exciting is what, after using `tremolo`, the audio engine's performance is highly improved too.
5050

5151
![audio performance](https://raw.githubusercontent.com/minggo/Pictures/master/AudioDecodingPerfTest.png)
5252

@@ -62,4 +62,9 @@ If you need linux 32-bit support, you can build the 3rd party libraries through
6262

6363
## misc
6464

65-
[Android SDK Tools 25.3.0+](http://tools.android.com/recent/androidsdktoolsrevision2530feb2017) remove ant scripts and `android` tool, this leads to that cant not use cocos command to generate apk files. Currently, cocos command will do nothing if using SDK Tools 25.3.0+. We may remove eclipse project support in future as Google focus on Android Studio.
65+
[Android SDK Tools 25.3.0+](http://tools.android.com/recent/androidsdktoolsrevision2530feb2017) removes __ant script__ and __android tool__, which leads to that cocos command can not generate apk files with Eclipse projects(proj.android). Currently, cocos command will do nothing if using SDK Tools 25.3.0+, you can use these two methods to fix it:
66+
67+
* copy `tools` folder from old Android SDK version
68+
* use Android Studio to build the app
69+
70+
It seems google doesn't want developers continue to use Eclipse to develope Android applications, so i suggest to switch to use Android Studio.

docs/RELEASE_NOTES_CN.md

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,63 @@
22
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
33
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
44

5-
- [v3.14.1](#v3141)
6-
- [修复的问题](#%E4%BF%AE%E5%A4%8D%E7%9A%84%E9%97%AE%E9%A2%98)
7-
- [其他](#%E5%85%B6%E4%BB%96)
5+
- [v3.15](#v315)
6+
- [新特性](#%E6%96%B0%E7%89%B9%E6%80%A7)
7+
- [新特性详细介绍](#%E6%96%B0%E7%89%B9%E6%80%A7%E8%AF%A6%E7%BB%86%E4%BB%8B%E7%BB%8D)
8+
- [全面支持Android Studio](#%E5%85%A8%E9%9D%A2%E6%94%AF%E6%8C%81android-studio)
9+
- [音频模块在Android平台的改进](#%E9%9F%B3%E9%A2%91%E6%A8%A1%E5%9D%97%E5%9C%A8android%E5%B9%B3%E5%8F%B0%E7%9A%84%E6%94%B9%E8%BF%9B)
10+
- [去除Windows 8.1的支持](#%E5%8E%BB%E9%99%A4windows-81%E7%9A%84%E6%94%AF%E6%8C%81)
11+
- [去除32位linux支持](#%E5%8E%BB%E9%99%A432%E4%BD%8Dlinux%E6%94%AF%E6%8C%81)
12+
- [其他](#%E5%85%B6%E4%BB%96)
813

914
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
1015

11-
# v3.14.1
16+
# v3.15
1217

13-
## 修复的问题
18+
## 新特性
1419

15-
* 如果创建物理场景但是没有设置3d物理的摄像机,那么程序会崩溃
16-
* 由于glfw版本冲突,在linux平台可能会有链接错误
17-
* 通过带有多边形信息的sprite frame创建的Sprite效果不对
18-
* VS2015编译Lua工程时有链接错误
19-
* 通过`cocos compile/run -p android --android-studio`命令编译Android工程时会有编译错误
20+
* 全面支持__Android Studio__,包括编译、代码编辑和调试C++代码:[使用文档](https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/installation/Android-Studio.md)
21+
* 音频模块在Android平台使用[tremolo](http://wss.co.uk/pinknoise/tremolo/)解码器解码音频文件,使得音频模块效率更高,兼容更多的Android设备
22+
* __WebSockets____SocketIO__支持__SSL__
23+
* AssetsManagerEx更加稳定
24+
* 更新__Spine runtime__到v3.5.35
25+
* 更新__flatbuffer__到v1.5
26+
* 升级__OpenSSL__到v1.1.0
27+
* 去除__Windows 8.1__的支持
28+
* 去除32位linux的支持
2029

21-
## 其他
2230

23-
通过查看[3.14.1版本信息](https://github.com/cocos2d/cocos2d-x/milestone/36?closed=1)了解所有的问题或者代码改动。
31+
## 新特性详细介绍
32+
33+
### 全面支持Android Studio
34+
35+
__3.15__版本开始,可以使用Android Studio 2.3+ 编辑、编译和调试C++代码。只需要通过Android Studio打开__proj.android-studio__文件夹(比如__tests/cpp-empty-test/proj.android-studio__),然后点击__run__按钮就可以在Android设备或者模拟器运行、调试了。
36+
37+
详细的使用方法请参考[这篇文档](https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/installation/Android-Studio.md)
38+
39+
### 音频模块在Android平台的改进
40+
41+
3.15版本之前,音频模块使用__OpenSL ES__解码、播放音频文件,但是很多的Android设备厂商会修改这部分代码,导致音频模块在不同的Android设备上有兼容性问题。[该帖子](http://discuss.cocos2d-x.org/t/android-audio-decoding-issues-discussion/34610)就列出了许多音频模块的问题。
42+
43+
为了解决兼容性问题,我们引入了第三方的解码库[tremolo](http://wss.co.uk/pinknoise/tremolo/)。该解码库也是Android源码使用的解码库。使用该解码库除了能解决Android设备的兼容性问题,同时还带来了不少性能提升:
44+
45+
![audio performance](https://raw.githubusercontent.com/minggo/Pictures/master/AudioDecodingPerfTest.png)
46+
47+
引入该解码库会使最终的APK包增大100K左右,和带来的好处相比还是值得的。
48+
49+
### 去除Windows 8.1的支持
50+
51+
Windows 8.1的支持一直是微软的开发者在维护。因为市场占有率原因,他们觉得没必要继续支持Windows 8.1了。
52+
53+
### 去除32位linux支持
54+
55+
目前大部分的PC都是64位了,所以我们觉得去除对32位linux的支持。去除这个支持意味着第三方库去掉了对应的32位版本,这样可以减小发行包的大小,也减少引擎维护的工作。开发者如果想支持32位版本的话,可以使用[这个仓库](https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src)自己编译32位版本的第三方库。
56+
57+
### 其他
58+
59+
[Android SDK Tools 25.3.0+](http://tools.android.com/recent/androidsdktoolsrevision2530feb2017)去除了__ant脚本____android命令__,使得cocos命令无法打包Android的Eclipse工程(proj.android)。为了不至于在最后胜出APK时才报错,现在cocos命令检查到这个版本后直接返回错误。有两个方法可以解决这个问题:
60+
61+
* 从旧版本的Android SDK拷贝tools文件夹过来替换对应的目录
62+
* 使用Android Studio工程编译打包
63+
64+
从Android工具删除ant脚本和android的行为来看,谷歌是不希望大家继续使用Eclipse工程,所以建议大家还是使用Android Studio来编译打包吧。旧版本引擎虽然不支持Android Studio调试C++代码功能,但是编译打包还是没问题的。

0 commit comments

Comments
 (0)