Шаблоны приложения для NME -> Android

По этой статье prevent android from dimming (w/ haxe and nme)
Этот путь подходит для быстрого включения в свой NME проект простых нативных функций или настроек Android, без использования расширений.

1. Создаем файл MainActivity.java в папке проекта, который и будет шаблоном.

Предотвращение угасания экрана:

package ::APP_PACKAGE::;

import android.os.Bundle;
import android.view.WindowManager;

public class MainActivity extends org.haxe.nme.GameActivity {

         protected void onCreate(Bundle state) {
                super.onCreate(state);
                getWindow().addFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
         }
}

подобным способом я сделал cкрытие системного UI (статус бар с экранными кнопками) для ICS, HoneyComb

package ::APP_PACKAGE::;

import android.os.Bundle;
import android.view.*;

public class MainActivity extends org.haxe.nme.GameActivity {

         protected void onCreate(Bundle state) {
                super.onCreate(state);
                View vw = findViewById(android.R.id.content).getRootView();
                vw.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE  );
         }
}

2. и добавляем в application.nmml такую строчку, чтобы сделать этот файл темплейтом:

<template path="MainActivity.java" rename="src/[package_path]/MainActivity.java" if="android" />

где [package_path] это пакет-идентификатор нашего приложения, прописанный в теге meta того же nmml

Комментарии

+ BugSense

вот нашел такой прекрасный сервис для отлова багов в мобильных приложениях: http://www.bugsense.com/
его скорее всего можно применить в NME приложении по тому же принципу:

package ::APP_PACKAGE::;

import android.os.Bundle;
import android.view.*;
import com.bugsense.trace.BugSenseHandler;

public class MainActivity extends org.haxe.nme.GameActivity
{
          protected void onCreate(Bundle state) {
                 super.onCreate(state);
                 
                 BugSenseHandler.setup(this, "YOUR_API_KEY");
          }
}

остается только небольшой вопрос с тем, куда положить jar - но даже в худшем случае его можно подсунуть уже перед компиляцией в собранные исходники Android приложения, а вообще мне кажется что и в nmml уже есть что-то для этого. Возможно что-ндь типа:

<template path="bugsense-trace-1-1-3.jar" rename="libs/bugsense-trace-1-1-3.jar" if="android" />

+ ChartBoost или другие сервисы рекламы в NME игре на Android

По поводу jar сам себе и отвечу, с помощью вот этой статьи: Интеграция ChartBoost в HaxeNME
Там автор положил jar библиотеки в папку assets/libs. А потом в nmml добавил такую строчку:

 <template path="assets/libs" rename="libs" if="android" />

т.е. кроме того, что предполагал я, еще и сделал эту папку папкой библиотек для Андроид проекта, так что потому туда можно напихать еще jar'ов без дополнительных изменений в конфиге. Разумно.

Почти всё, кроме этого, сделано по тому же принципу, что и в моей записи, только в конце добавлен абзац про то, как получить больше контроля над показом рекламы, создав статический метод и обратившись к нему из Haxe с помощью JNI.createStaticMethod:

var showChartboost = JNI.createStaticMethod("com/amagine/plate2/MainActivity", "showChartboost", "()V");
showChartboost();

Этот подход видимо пошел от тьюториал Граника по созданию расширений для NME.
Вот еще обсуждение с похожим решением по теме: How do you call Haxe from Java (Android)?
Подход работает, но в том что это наилучший вариант, есть сомнения, вспоминая недавний пост у нас на форуме:
[Android] JNI.createStaticMethod открытие галереи девайса...
В обсуждении этой темы на nme.io Hugh предложил еще вариант с вызовом через UI поток:
nme.Lib.postUICallback( function()
 {
 jni_get_gallery_method([this]);
 } );
Надо будет разобраться с этим способом подробнее.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Use [gist:####] where #### is your gist number to embed the gist.

Подробнее о форматировании

CAPTCHA
Для отсева спамеров)
V
P
V
y
b
j
Enter the code without spaces and pay attention to upper/lower case.