Visual StudioのC++でAndroid SDKを使うには

[戻る]
にょにょにょ 2016/05/16(月) 21:19:02
お世話になります。
Windows 7を使っています。
Androidアプリ開発において、Android StudioからVisual Studio 2015に乗り換えること
を検討しています。

・Visual Studioでandroidアプリを作るとき、参考となる日本語書籍、日本語サイトは何
でしょうか。

・android SDKで用意されたクラスをVisual Studio上で使うには、どうしたらよいでしょ
うか。

よろしくお願いします。

仲澤@失業者 2016/05/17(火) 10:37:44
Androidアプリケーションのネイティブ言語はJavaです。
Visual StudioはJava言語をサポートしていません(大昔にJ++というのもありましたが)。
Androidネイティブアプリケーションを作成するには Android Studioを使用し、
Java言語で作成するのが最短距離となります(C++に慣れていれば楽に覚えられます)。

以下のページはクロスプラットホームに重点が置かれてますが、
まっとまっていて、一見の価値があります。わかりやすいかもしれません

http://www.atmarkit.co.jp/ait/articles/1506/12/news022.html

上記ページにも説明されている通り、
Visual StudioでAndroidアプリを作成する場合の最も一般的な選択は、
Xamarinを前提として、C#言語でコードするのですが、
現状、参考になる情報はあまり多くないようです。

VS上のC++言語でも、Android NDKを前提とすればコードできそうですが、
この場合、実行ファイルはCPUに依存すると考えられます。

Webアプリケーション系(ハイブリッドも)を目指している場合は、
原理的にそれのプラットホームがWebブラウザ等であるため、この限りではありません。
この選択をすると多くの場合、言語はJavaScriptになりますが、
はっきり言って中途半端なクソ言語という感想ですね(Javaの方がまだマシ)。

にょにょにょ 2016/05/17(火) 21:58:32
貴重な情報を、ありがとうございます。

もともと、android studio(java)からVisual Studio(C++)に乗り換えを検討しはじめたの
は、ゲームアプリを作る上でチート対策が必須になると考えたからです。

android studioで作ったapkから、難読化されたソースコードを引っ張り出し、処理の流
れを追うのは容易でした。(自分で作ったので内容を知っているだけだからかも知れませ
んが。)

これではまずいと思い、NDKの勉強を始めたりVC++の利用を検討したりしております。

そこで、android javaで用意されている機能との連携・もしくはこれらと同等の機能があ
れば知りたいと思っている次第です。

仲澤@失業者 2016/05/18(水) 15:12:43
まず、コードの完全な難読化は不可能なので、
必ず解析されることを前提にコードするべきかもしれません。

次に、解析されても被害が出にくい仕組みを考えた方が良いかもしれません。
ゲームの場合、シナリオや、ステージクリア条件が
わかりやすいクラスになっているとまずいと思います。

この様な場合は、データの難読化を施す場合があります。
一般にコードより、バイナリデータファイルの構造を解析する方が困難です。
特に無意味なフィラーがちりばめられたバイナリは大変です。

もちろん、このバイナリデータをわかりやすいクラスに読み込んでしまうと、
元も子もなくなりますので、それはデバック時のみ行い、
リリースでは単なる配列のまま扱うといういじわるをするわけです。

この様なファイルを読み込んで分岐を生成するアルゴリズムの解析は、
一種のインタープリタ的な、またはデコーダ的なコードになり、
データ自体の真意を隠ぺいできることが期待できます。
その解析を頑張ることによる効果コスト対比から考えて、
あきらめてもらえる可能性が高いと考えられるのではないでしょうか。

にょにょにょ 2016/05/18(水) 20:31:48
[[解決]]
ご助言感謝します。
いろいろな工夫がありそうですので、
引き続き調べてみます。

ありがとうございました。

古いスレッドには追加発言できません。