Androidアプリのlua言語からの呼び出し方法

このQ&Aのポイント
  • PC上であるソフトウェアを実行して一定条件を満たした時に、Androidアプリを起動する方法を知りたい。
  • luaでAndroidアプリを呼び出すための記述方法や、呼び出し可能なコードのサンプルを教えてください。
  • Androidアプリはjavaで記述されており、luaでそのアプリを呼び出せる方法について教えてください。
回答を見る
  • ベストアンサー

Androidアプリをlua言語から呼び出す

PC上であるソフトウェアを実行して一定条件を満たした時に、Androidアプリを起動したい。 そのソフトウェアにはluaでプラグインを使える仕様になっていて、luaで書いているのですが、 どのような記述になるのかさっぱりです。 イメージとしては if 条件 then Androidアプリ呼び出し end みたいな感じになると考えています。 Androidアプリはjavaで記述しているので、要はそれを実行できるようにしたいんですが、 まずluaでAndroidアプリ呼び出せるのか。 呼び出せるとすればどのようなコードになるのか、サンプルを教えていただければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.3

もしAndroidとPCがUSB接続されているなら  os.execute("adb shell am start -a android.intent.action.MAIN -n [パッケージ名]/.[Activityのクラス名]") でできそうです。

参考URL:
http://d.hatena.ne.jp/hikaruright/20120627/1340781017
lucccccck
質問者

お礼

解答ありがとうございました。 os.executeでできそうでしたが、結局別の手段で問題解決へ向かいました。 知識の一つとして覚えておきたいと思いました。

その他の回答 (2)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

luaはよくわかないですが、AndroidはPCのコマンドラインからadbコマンドで操れます。

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

複数の意味に取れるんですが、やりたいことはどっちでしょう? (1)PC上でluaスクリプトが実行されていて、PC上でAndroidアプリを呼び出したい (2)PC上でluaスクリプトが実行されていて、Android上でAndroidアプリを呼び出したい (1)無理 (2)不可能ではないが、トリッキーな方法を使うことになるかも? という感じですかね……。

lucccccck
質問者

補足

(1)ではなく(2)の意味で質問させていただきました。 Androidアプリも自分で制作したものを起動させたいのですが、 ADTを使って普段起動させていまして、luaから呼び出すという感覚がいまいち わかっていないこともこの問題を理解できていない1つの要因かと思います。 Android上でアプリが起動してくれることが自分の所望する動きになります。

関連するQ&A

  • Lua言語を採用する理由・背景は?

    ある特定のソフトウェアを使っているときに、スクリプト制御をするための言語としてLuaが採用されていることがあります。例えば動画編集ソフトのAviUtlはLuaで拡張機能を作れますし, 最近はLaTeX中でLuaが使えるLuaLaTeXなんかもあります。 このような仕様の製作者がLua言語を採用する理由はなぜですか? 単にスクリプト言語だから、以外にほかの言語では満たせない条件があるでしょうか。

  • androidアプリ開発について

    androidアプリをつくるにはどうやったらいいのですか? javaのAPIを全部おぼえそれからプログラミングにはいっていくのか、 それともプログラミングのサンプルをみておぼえていくのか? androidアプリを勉強しているのですが、どこから手をつけていいのかよくわかりません おすすめの勉強法やおすすめの参考書を教えてください お願いします。

  • Androidアプリを開発したい

    Androidアプリを開発したい java歴2ヶ月ほどの初心者です。 Androidアプリを作る練習として、ガラパゴスケータイのオンリービューやブラインドモードのようなアプリを作りたいと考えています。 すでに公開されているdecoroid(http://d.hatena.ne.jp/jaga30/20100127/1264560041)のようなことをしたいのですが、ネットで調べてみてもどのように作ったらよいかわかりません。 サンプルソースやアドバイス、参考になりそうなサイトなど教えていただけるとありがたいです。 どうかよろしくお願いいたします。

  • 業務におけるandroidアプリ開発

    私は、専門学校にて、javaとcを学んでいます。 アプリ開発に携わる業務に就きたいです。 androidの参考書を何冊か購入してみましたが、機能をjavaで記述するものと、XMLで記述するものがありました。 両方理解するのがいいと思いますが、業務ではどちらがメインに記述されるのでしょうか? また、どちらから学ぶと効率がいいとかありますか?

  • Androidアプリ開発・サンプルコードが開けない

    Androidアプリ開発は全くの初心者です。 パソコンでアンドロイドの開発環境の設定まではなんとか出来ました。 JAVA、eclipse、AndroidSDKのインストールまでも問題なく出来たと思うのですが、 いざSDKの中に入っているサンプルを開こうとするとエラーが出てシュミレーターでみれません。 ただ開けてシュミレーターで見れるサンプルもあるのです。 何がダメなのか全く分かりません。 どうかアンドロイドに詳しい方お教えください。 よろしくお願いします。

  • luaで2回目以降の呼び出しで変数を保持しておく

    C/C++とLua言語で開発しています。 メインはC/C++言語でつくっていてて、補助的なスクリプト部分はLuaです。 そこで、たとえば、F1キーを押したらLuaのスクリプトAを起動するとします。 そしたら、LuaのスクリプトAが処理され、またC/C++に処理がもどってきます。 そのあと、また別の機会にF1を押したら、前回のLuaスクリプトAの 処理で使用した変数を保持したままの状態から、再度Luaスクリプトを 実行したいのです。 グローバル変数を使って実現しようとしましたが、うまくできませんでした。 ファイル:hoge.lua [START] _G[switch] = 0; if _G[switch] == 0 then _G[value] = 100; end _G[value] = 120 [END] と、作ったのですが、2回目以降呼び出しても _G[switch] = 0 をとおるので どうしても _G[value] = 100 となってしまいます。 したい処理としては、2回目以降の呼び出しで、_G[switch] = 0 とならずに _G[value] の1回目の処理の結果を保持したままの状態で、処理したいのです。 条件として、F1キー(指定したキー)でLuaスクリプトを呼び出せて、 C/C++言語の方は、処理を続行 処理を続行中にF1キー(指定したキー)を押すと、前回の状態(変数)を保持したまま Luaスクリプトを処理するというものです。 上の実装した例でいうところでは、_G[value] が 120 の状態でスクリプトを処理したいのです。 どのような実装方法があるのでしょうか?

  • androidアプリ開発 エラーについて

    eclipseというソフトウェアを使用しています。 実行しようとすると画像のようにエラーが出てしまうのはなぜでしょうか? androidアプリ開発を本で学ぼうと、本に書いてあるとおりに文字コードを打ったのですが、実行できません。 何かが間違えているのでしょうか?

  • Java Android アプリの終了

    Androidアプリを終了させるため finish() ※android:noHistory="true" System.Exit(); android.os.Process.killProcess(android.os.Process.myPid()); moveTaskToBack (bolean); どれを実行させた場合であってもタスクにには残り続けます。 これはAndroidの仕様のようですが、これをWindosなどのように終了は終了としてメモリから消す方法は無いのでしょうか? いくつかのアプリは終了処理によりメモリ上からも消されていることから、方法が無い訳では無いと考えます。 実際のところはどうなのでしょうか?

  • Androidのアプリ管理について

    auのHTC-J’春夏モデル)・・・AndroidのVersionは4.0・・・を使っています。 アプリをたくさんインストールしたのですが、 画面に配置しているアプリとまだ配置してないアプリがあります。 で、まだ画面に配置してないアプリを、画面に配置しようと思ったときに、 実はすでに配置してて、ダブって配置してしまうことがあります。 (同じアプリのアイコンが2つ画面に表示される) 配置しようとした時に、実はすでに配置しているかどうかがわかるアプリや方法はないでしょうか? ************************************************************** それから、 Google Playからアプリをインストールすると、必ず画面上に配置されるのでしょうか? どうも配置されてない場合があるみたいでして(見落とし?) で、もしホームの画面にアプリがいっぱい配置されててホームの画面に空きスペースがない場合、どのような挙動になるのでしょうか? 要は、ダウンロードしたときの挙動の仕様を知りたいしだいです。 でもって、アプリの管理(ランチャーの類)でおすすめアプリはありませんか? よろしくお願いします

  • ANDROIDアプリからシェルコマンド

    アンドロイドアプリ、というかJAVA初心者です。 アンドロイドアプリからシェルコマンドを実行したいのですが、うまくできません。他サイトを参考に以下のように作ってみたのですがどこが悪いのでしょうか? このアプリを実行してもchmodできません。 ちなみにadb shellでは同様のコマンドでちゃんとchmod できます。 よろしくお願いします。 package com.android.test; import java.io.DataOutputStream; import java.io.IOException; import android.app.activity; import android.os.Bundle; import android.widget.TextView; public class ShelltestActivity extends Activity { /** Called when the activity is first created. */@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = new TextView(this); tv.setText("Hello, World"); setContentView(tv); try { Process p = Runtime.getRuntime().exec("su"); DataOutputStream dos = new DataOutputStream(p.getOutputStream()); dos.writeBytes("chmod 777 /data/app/*\n"); dos.flush(); } catch (IOException e) { e.printStackTrace(); } } }