androidadvancewithgeektime / chapter01 Goto Github PK
View Code? Open in Web Editor NEWChapter01 GeekTime ,crash catch sample
Chapter01 GeekTime ,crash catch sample
我使用的是macOS 10.13.6
我成功把crash文件抓取到本地并且本地编译了minidump_stackwalk,但是使用工具的时候,terminal会报很多错误,用google搜索也找不到答案
➜ processor git:(5467393a) ✗ ./minidump_stackwalk crashDump/e9c42b5d-8a0f-480d-d086608e-54b9110c.dmp >crashLog.txt
2018-12-09 23:42:35: minidump.cc:5103: INFO: Minidump opened minidump crashDump/e9c42b5d-8a0f-480d-d086608e-54b9110c.dmp
2018-12-09 23:42:35: minidump.cc:5233: INFO: Minidump not byte-swapping minidump
2018-12-09 23:42:35: minidump.cc:5876: INFO: GetStream: type 15 not present
2018-12-09 23:42:35: minidump.cc:5876: INFO: GetStream: type 1197932545 not present
2018-12-09 23:42:35: minidump.cc:5876: INFO: GetStream: type 1197932546 not present
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /system/bin/app_process64
2018-12-09 23:42:35: minidump.cc:2147: INFO: MinidumpModule could not determine debug_file for /dev/ashmem/dalvik-main space (region space) (deleted)
2018-12-09 23:42:35: minidump.cc:2237: INFO: MinidumpModule could not determine debug_identifier for /dev/ashmem/dalvik-main space (region space) (deleted)
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /dev/ashmem/dalvik-main space (region space) (deleted)
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
2018-12-09 23:42:35: minidump.cc:2269: INFO: MinidumpModule could not determine version for /data/dalvik-cache/arm64/system@[email protected]
Demo中的module,breakpad-build这个module,看了一下src目录与下载下来编译之后的google/breakpad中的src目录基本相似,是单独新建一个C++moudule把这个src拷贝进去吗?
自己编译了breakpad,使用编译后的microdump_stackwalk 执行命令, ./tools/mac/microdump_stackwalk test2 > crashLog.txt
报如下错误,网上查不到相关解决方法
`
basic_code_modules.cc:111: INFO: No module at 0x0
stackwalker.cc:270: ERROR: Unknown CPU type 0x0, can't choose a stackwalker implementation
microdump_processor.cc:82: ERROR: No stackwalker found for microdump.
microdump_stackwalk.cc:118: ERROR: MicrodumpProcessor::Process failed (code = 3)
`
./tools/mac/minidump_stackwalk ./crashDump/***.dmp > ./crashDump/crash.txt
报错:
dyld: Symbol not found: __ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
Referenced from: /Users/yvescheung/project/Chapter01/./tools/mac/minidump_stackwalk
Expected in: /usr/lib/libstdc++.6.dylib
in /Users/yvescheung/project/Chapter01/./tools/mac/minidump_stackwalk
zsh: abort ./tools/mac/minidump_stackwalk ./crashDump/***.dmp > ./crashDump/crash.txt
externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" cppFlags "-std=c++11" arguments "-DANDROID_TOOLCHAIN=gcc" } }
FAILURE: Build failed with an exception.
Where:
Build file '/Users/jiangzehu/GeekTime/Chapter01/breakpad-build/build.gradle' line: 29
What went wrong:
A problem occurred evaluating project ':breakpad-build'.
Could not find method cppFlags() for arguments [-std=c++11] on object of type com.android.build.gradle.internal.dsl.CmakeOptions.
有人遇到过吗
2021-07-18 15:56:34: minidump.cc:5089: INFO: Minidump opened minidump 17F575B9-84A9-49CE-B3DB-CD02E04E71D0.dmp
2021-07-18 15:56:34: minidump.cc:5219: INFO: Minidump not byte-swapping minidump
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 15 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 7 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 7 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 1197932545 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 6 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 1197932546 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 4 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 14 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 5 not present
2021-07-18 15:56:34: minidump.cc:5871: INFO: GetStream: type 3 not present
2021-07-18 15:56:34: minidump_processor.cc:180: ERROR: Minidump 17F575B9-84A9-49CE-B3DB-CD02E04E71D0.dmp has no thread list
2021-07-18 15:56:34: minidump_stackwalk.cc:108: ERROR: MinidumpProcessor::Process failed
2021-07-18 15:56:34: minidump.cc:5061: INFO: Minidump closing minidump
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.dodola.breakpad-jCDdH1ua8M1bzPaGxwn39w==/base.apk"],nativeLibraryDirectories=[/data/app/com.dodola.breakpad-jCDdH1ua8M1bzPaGxwn39w==/lib/arm, /data/app/com.dodola.breakpad-jCDdH1ua8M1bzPaGxwn39w==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]] couldn't find "libbreakpad-core.so"
dyld: Symbol not found: __ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
Referenced from: /Users/chenchuan/StudioProjects/Chapter01/./tools/mac/minidump_stackwalk
Expected in: /usr/lib/libstdc++.6.dylib
in /Users/chenchuan/StudioProjects/Chapter01/./tools/mac/minidump_stackwalk
[1] 8483 abort ./tools/mac/minidump_stackwalk > crashLog.txt
已经成功获取 crashLog.txt, 但是解析的时候遇到错误:
york@ubuntu:~/AndroidStudioProjects/Chapter01/tools/mac$ aarch64-linux-android-addr2line -f -C -e /home/york/AndroidStudioProjects/Chapter01/sample/build/intermediates/transforms/mergeJniLibs/debug/0/lib/armeabi-v7a/libcrash-lib.so 0x600
??
??:0
搜索许久,发现这篇博客上说:
解决出现 ??:0 , 没法展示源代码行数的问题
在Android.mk 文件中:
Java代码
LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wl,-Map=test.map -g
补充2个编译参数
-Wl,-Map=test.map -g .
增加gcc警告和调试标志
sample 里用的是 CMAKE
, 写法与 .mk
有所区别,能指导一下如何配置这个属性去解决这个问题吗?
Breakpad 抓取闪退信息后执行DumpCallback后就马上闪退了,怎么和java log 当时堆栈关联起来?
生成的dmp文件,在window上用windbg 软件打不开,提示dmp是损坏的,多次生成的dmp都不可以
尝试生成系统进程的dmp,是可以打开,
2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /vendor/lib64/egl/libGLESv2_adreno.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libvixl-arm.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libart-compiler.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libopenjdk.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libjavacore.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediandk.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmedia_jni.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libcamera2ndk.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmtp.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libandroid.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libart.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediadrm.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediaplayerservice.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libstagefright_omx.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libwilhelm.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmedia_helper.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmars-service.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libsensor.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libpdfium.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libicuuc.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libdng_sdk.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libcamera_client.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libaudioclient.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libft2.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libinput.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libhwui.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libEGL.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediacore4g_vivo_public.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libvulkan.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libicui18n.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libdrmframework.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmedia_omx.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libandroidfw.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libbinder.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libstagefright.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libtinyxml2.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libandroid_runtime.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediautils.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libhidltransport.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediaextractor.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libunwindstack.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libheif.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libgui.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libcamera_metadata.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libhwbinder.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediametrics.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libstagefright_foundation.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmars-featureclient.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libpdx_default_transport.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libsoundtrigger.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libimg_utils.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libc++.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libvintf.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmedia.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libepmhelper.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libminikin.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libdexfile.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/libmediadrmmetrics_lite.so could not be stored 2019-10-11 11:24:01: basic_code_modules.cc:70: ERROR: Module /system/lib64/[email protected] could not be stored 2019-10-11 11:24:01: stackwalker_arm64.cc:193: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001 2019-10-11 11:24:01: stackwalker_arm64.cc:c1: ERROR: Unable to read caller_fp from last_fp: 0x12c7349800000001
使用Chapter01的代码编译安装后,运行生成的dmp文件移动到桌面,
使用 minidump_stackwalk crashDump /***.dmp > crashLog.txt 执行失败。
显示:
dyld: Symbol not found: __ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
Referenced from: /Users/steven/Downloads/Chapter01-master/tools/mac/minidump_stackwalk
Expected in: /usr/lib/libstdc++.6.dylib
in /Users/steven/Downloads/Chapter01-master/tools/mac/minidump_stackwalk
Abort trap: 6
从网上资料看应该是minidump执行还需要symbol文件,但是不见有.so文件可以转换。
在DumpCallback中无法直接通过jni回调java函数。是否需要fork其他进程的方式进行?那么应该怎么处理才能正确获取应用崩溃时候的系统信息
如题
您好,作者,我在查看breakpad makefile的时候,发现如下注释
breakpad/android/google_breakpad/Android.mk
# Breakpad uses inline ARM assembly that requires the library
# to be built in ARM mode. Otherwise, the build will fail with
# cryptic assembler messages like:
# Compile++ thumb : google_breakpad_client <= crash_generation_client.cc
# /tmp/cc8aMSoD.s: Assembler messages:
# /tmp/cc8aMSoD.s:132: Error: invalid immediate: 288 is out of range
# /tmp/cc8aMSoD.s:244: Error: invalid immediate: 296 is out of range
LOCAL_ARM_MODE := arm
注释里提到因为内联了一些arm平台的汇编代码,所以必须在arm的模式下构建。那为啥我们可以正常编译出x86的so呢?
期待您的回复,感激不尽。
这是我找到的一点资料
根据 README.md 里面的方法,成功运行了项目,然后授予存储权限、点击按钮项目崩溃,在 /sdcard/crashDump/
目录下没有任何文件:
~/Documents/AndroidAdvanceWithGeektime/Chapter01 master*
❯ adb pull /sdcard/crashDump/ ~/Desktop
/sdcard/crashDump/: 0 files pulled.
无论是在真机测试(Android 7.1)还是用模拟器 (Android 9.0 和 Android 5.1) 测试都出现了这样的情况。
请问是还需要作其他操作么?
./tools/mac/minidump_stackwalk
各位在 Mac 上面遇到 Symbol not found 或者输出文件为空的。
我重新编译一个 minidump_stackwalk,亲测问题解决。给大家分享一下。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.