mirror of
https://github.com/tiennm99/fbird.git
synced 2026-09-05 02:19:35 +00:00
init: fbird
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
/build
|
||||
/jniLibs
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.cocos2dx.Fbird"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
|
||||
<application
|
||||
android:label="@string/app_name"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
|
||||
<!-- Tell Cocos2dxActivity the name of our .so -->
|
||||
<meta-data android:name="android.app.lib_name"
|
||||
android:value="cocos2djs" />
|
||||
|
||||
<activity
|
||||
android:name="org.cocos2dx.javascript.AppActivity"
|
||||
android:screenOrientation="landscape"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity="" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
|
||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,189 @@
|
||||
import org.gradle.internal.os.OperatingSystem;
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
|
||||
|
||||
defaultConfig {
|
||||
applicationId "org.cocos2dx.Fbird"
|
||||
minSdkVersion PROP_MIN_SDK_VERSION
|
||||
targetSdkVersion PROP_TARGET_SDK_VERSION
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
|
||||
externalNativeBuild {
|
||||
if (PROP_BUILD_TYPE == 'ndk-build') {
|
||||
ndkBuild {
|
||||
targets 'cocos2djs'
|
||||
arguments 'NDK_TOOLCHAIN_VERSION=clang'
|
||||
arguments '-j' + Runtime.runtime.availableProcessors()
|
||||
|
||||
def module_paths = [project.file("../../../cocos2d-x").absolutePath,
|
||||
project.file("../../../cocos2d-x/cocos").absolutePath,
|
||||
project.file("../../../cocos2d-x/external").absolutePath]
|
||||
if (OperatingSystem.current().isWindows()) {
|
||||
module_paths = module_paths.collect {it.replaceAll('\\\\', '/')}
|
||||
arguments 'NDK_MODULE_PATH=' + module_paths.join(";")
|
||||
}
|
||||
else {
|
||||
arguments 'NDK_MODULE_PATH=' + module_paths.join(':')
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (PROP_BUILD_TYPE == 'cmake') {
|
||||
cmake {
|
||||
arguments "-DCMAKE_FIND_ROOT_PATH=", "-DANDROID_STL=c++_static", "-DANDROID_TOOLCHAIN=clang", "-DANDROID_ARM_NEON=TRUE"
|
||||
cppFlags "-frtti -fexceptions -fsigned-char"
|
||||
}
|
||||
}
|
||||
}
|
||||
ndk {
|
||||
abiFilters = []
|
||||
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets.main {
|
||||
java.srcDir "src"
|
||||
res.srcDir "res"
|
||||
jniLibs.srcDir "libs"
|
||||
manifest.srcFile "AndroidManifest.xml"
|
||||
}
|
||||
|
||||
externalNativeBuild {
|
||||
if (PROP_BUILD_TYPE == 'ndk-build') {
|
||||
ndkBuild {
|
||||
path "jni/Android.mk"
|
||||
}
|
||||
}
|
||||
else if (PROP_BUILD_TYPE == 'cmake') {
|
||||
cmake {
|
||||
path "../../../../CMakeLists.txt"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
||||
release {
|
||||
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
||||
storeFile file(RELEASE_STORE_FILE)
|
||||
storePassword RELEASE_STORE_PASSWORD
|
||||
keyAlias RELEASE_KEY_ALIAS
|
||||
keyPassword RELEASE_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
debuggable false
|
||||
jniDebuggable false
|
||||
renderscriptDebuggable false
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
if (project.hasProperty("RELEASE_STORE_FILE")) {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
arguments 'NDK_DEBUG=0'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug {
|
||||
debuggable true
|
||||
jniDebuggable true
|
||||
renderscriptDebuggable true
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
arguments 'NDK_DEBUG=1'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def getCocosCommandPath() {
|
||||
if (OperatingSystem.current().isWindows()) {
|
||||
return 'cocos.bat'
|
||||
}
|
||||
else {
|
||||
// on unix like system, can not get environments variables easily
|
||||
// so run a shell script to get environment variable sets by cocos2d-x setup.py
|
||||
new ByteArrayOutputStream().withStream { os ->
|
||||
def result = exec {
|
||||
executable = project.file('get_environment.sh')
|
||||
standardOutput = os
|
||||
}
|
||||
ext.console_path = os.toString().trim()
|
||||
}
|
||||
return new File(console_path + '/cocos').absolutePath;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// a method used to invoke the cocos jscompile command
|
||||
def compileJS(srcDir, dstDir) {
|
||||
def compileArgs = ['jscompile', '-s', srcDir, '-d', dstDir]
|
||||
|
||||
println 'running command : ' + 'cocos ' + compileArgs.join(' ')
|
||||
exec {
|
||||
// if you meet problem, just replace `getCocosCommandPath()` to the path of cocos command
|
||||
executable getCocosCommandPath()
|
||||
args compileArgs
|
||||
}
|
||||
|
||||
// remove the js files in dstDir
|
||||
delete fileTree(dstDir) {
|
||||
include '**/*.js'
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
// delete previous files first
|
||||
delete "${buildDir}/intermediates/assets/${variant.dirName}"
|
||||
|
||||
variant.mergeAssets.doLast {
|
||||
copy {
|
||||
from "${buildDir}/../../../../../res"
|
||||
into "${buildDir}/intermediates/assets/${variant.dirName}/res"
|
||||
}
|
||||
|
||||
copy {
|
||||
from "${buildDir}/../../../../../src"
|
||||
into "${buildDir}/intermediates/assets/${variant.dirName}/src"
|
||||
}
|
||||
|
||||
copy {
|
||||
from "${buildDir}/../../../../cocos2d-x/cocos/scripting/js-bindings/script"
|
||||
into "${buildDir}/intermediates/assets/${variant.dirName}/script"
|
||||
}
|
||||
|
||||
copy {
|
||||
from "${buildDir}/../../../../../main.js"
|
||||
from "${buildDir}/../../../../../project.json"
|
||||
into "${buildDir}/intermediates/assets/${variant.dirName}"
|
||||
}
|
||||
|
||||
// compile the scripts if necessary
|
||||
def compileScript = (variant.name.compareTo('release') == 0)
|
||||
if (project.hasProperty('PROP_COMPILE_SCRIPT')) {
|
||||
compileScript = (PROP_COMPILE_SCRIPT.compareTo('1') == 0)
|
||||
}
|
||||
|
||||
if (compileScript) {
|
||||
compileJS("${buildDir}/intermediates/assets/${variant.dirName}",
|
||||
"${buildDir}/intermediates/assets/${variant.dirName}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation project(':libcocos2dx')
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f $HOME/.bashrc ]; then
|
||||
source $HOME/.bashrc
|
||||
fi
|
||||
|
||||
if [ -f $HOME/.bash_profile ]; then
|
||||
source $HOME/.bash_profile
|
||||
fi
|
||||
|
||||
echo $COCOS_CONSOLE_ROOT
|
||||
@@ -0,0 +1,20 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := cocos2djs_shared
|
||||
|
||||
LOCAL_MODULE_FILENAME := libcocos2djs
|
||||
|
||||
LOCAL_SRC_FILES := hellojavascript/main.cpp \
|
||||
../../../Classes/AppDelegate.cpp
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := ccjs_static
|
||||
|
||||
LOCAL_EXPORT_CFLAGS := -DCOCOS2D_DEBUG=2 -DCOCOS2D_JAVASCRIPT
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
$(call import-module, cocos/scripting/js-bindings/proj.android)
|
||||
@@ -0,0 +1,20 @@
|
||||
APP_STL := c++_static
|
||||
|
||||
# Uncomment this line to compile to armeabi-v7a, your application will run faster but support less devices
|
||||
#APP_ABI := armeabi-v7a
|
||||
|
||||
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char -Wno-extern-c-compat
|
||||
APP_LDFLAGS := -latomic
|
||||
|
||||
APP_ABI := armeabi-v7a
|
||||
APP_SHORT_COMMANDS := true
|
||||
|
||||
USE_ARM_MODE := 1
|
||||
|
||||
ifeq ($(NDK_DEBUG),1)
|
||||
APP_CPPFLAGS += -DCOCOS2D_DEBUG=1
|
||||
APP_OPTIM := debug
|
||||
else
|
||||
APP_CPPFLAGS += -DNDEBUG
|
||||
APP_OPTIM := release
|
||||
endif
|
||||
@@ -0,0 +1,42 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <android/log.h>
|
||||
#include <jni.h>
|
||||
|
||||
#include "AppDelegate.h"
|
||||
|
||||
#define LOG_TAG "main"
|
||||
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
|
||||
|
||||
namespace {
|
||||
std::unique_ptr<AppDelegate> appDelegate;
|
||||
}
|
||||
|
||||
void cocos_android_app_init(JNIEnv* env) {
|
||||
LOGD("cocos_android_app_init");
|
||||
appDelegate.reset(new AppDelegate());
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in E:\developSoftware\Android\SDK/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Proguard Cocos2d-x for release
|
||||
-keep public class org.cocos2dx.** { *; }
|
||||
-dontwarn org.cocos2dx.**
|
||||
-keep public class com.chukong.** { *; }
|
||||
-dontwarn com.chukong.**
|
||||
-keep public class com.huawei.android.** { *; }
|
||||
-dontwarn com.huawei.android.**
|
||||
-keep public class com.oppo.oiface.engine.** { *; }
|
||||
-dontwarn com.oppo.oiface.engine.**
|
||||
|
||||
# Proguard Apache HTTP for release
|
||||
-keep class org.apache.http.** { *; }
|
||||
-dontwarn org.apache.http.**
|
||||
|
||||
# Proguard Android Webivew for release. uncomment if you are using a webview in cocos2d-x
|
||||
#-keep public class android.net.http.SslError
|
||||
#-keep public class android.webkit.WebViewClient
|
||||
|
||||
#-dontwarn android.webkit.WebView
|
||||
#-dontwarn android.net.http.SslError
|
||||
#-dontwarn android.webkit.WebViewClient
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,3 @@
|
||||
<resources>
|
||||
<string name="app_name">Fbird</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,48 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2015-2016 Chukong Technologies Inc.
|
||||
Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
package org.cocos2dx.javascript;
|
||||
|
||||
import android.os.Bundle;
|
||||
import org.cocos2dx.lib.Cocos2dxActivity;
|
||||
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
|
||||
|
||||
public class AppActivity extends Cocos2dxActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.setEnableVirtualButton(false);
|
||||
super.onCreate(savedInstanceState);
|
||||
// Workaround in https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508
|
||||
if (!isTaskRoot()) {
|
||||
// Android launched another instance of the root activity into an existing task
|
||||
// so just quietly finish and go away, dropping the user back into the activity
|
||||
// at the top of the stack (ie: the last state of this task)
|
||||
// Don't need to finish it again since it's finished in super.onCreate .
|
||||
return;
|
||||
}
|
||||
|
||||
// DO OTHER INITIALIZATION BELOW
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user