2015年9月24日木曜日

覚書:AndroidStudio でアプリケーションのディレクトリーを確認する方法


開発中のアプリのディレクトリ 開発機/data/data/アプリ は
デバッグモードの場合下記の方法でアクセス可能となります

1)androidstudioのterminal からadb shell を実行 

   /platform-tools/adb はパスが通っている前提

2)パッケージ名の確認 ※必要ならば
  
  pm list packages

3)run-as "パッケージ名" の実行

これで対象ディレクトリのみパーミッションがフリーとなる



2015年9月4日金曜日

覚書:Androidstudio で NativeActivity

テスト的にNativeActivity を使用しようとして
Androidstudio でプロジェクを作って見たが すんなりと動きませんでした
以下覚書


1)build.gradle
 
   sourceSets.main {
        jniLibs.srcDir 'src/main/jniLibs'    //.so ファイルのディレクトリーの指定
        jni.srcDirs = []             //jniのビルドを無効(別のバッチで実行するため)
    }


    /* ndk {  }*/  //ndkの処理はここでは行わない


2)AndroidManifest.xml
 <application
        android:label="@string/app_name"
        android:hasCode="false"  >         //java ファイルがない場合
        <activity
            android:name="android.app.NativeActivity"
            android:label="@string/app_name"
            android:configChanges="orientation|keyboardHidden">
            <meta-data android:name="android.app.lib_name"
                android:value="native-activity" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>



2)Android.mk  で  NDK_APP_DST_DIR を記載が必要( 1)で指定した為)

 私の場合 NDK_APP_DST_DIR := ../jniLibs/$(TARGET_ARCH_ABI)
 


2015年8月17日月曜日

YogaTablet2 830L Androidstudio ADB接続


YogaTablet2 830Lを買ったがいいが
Androidstudioでデバッガ機として認識できず困った人へ

私がそうです
購入後すぐにOSバージョンアップを行ったせいかどうか・・・
デバッグ接続用のドライバーがインストールされずに困ってしまいました
私は下記の方法で何とかつながりましたので
参考にされる方はどうぞ 自己責任でお願いします

解決法
1)ドライバーをLenovo サイトから手に入れる  

  lenovo.com - 【レノボ】公式サイト‎


   HPの検索で "ADB"と入力
   
      ”ADBドライバー”ラインナップを見る を押す

   ”ADBインターフェースドライバー” これをダウンロード

2)解凍

3)インストール

  デバイスマネージャー開き
  ”ほかのデバイス”にぶら下がってるディバイスのプロパティを開く
  ”ドライバーの更新”
    ↓
  ”コンピュータを参照して・・・”
    ↓
  ”コンピュータ上のデバイドライバーの一覧・・・”
    ↓
  ”すべてのディバイスを表示”
    ↓
  ”ディスクを使用”
    ↓
  ”参照”
    ↓
  先ほどのドライバーを解凍したフォルダの中の
  "android_winusb.inf"を指定
    ↓
  【ドライバーの更新警告】”windowsによって・・・” 互換性の警告がでる
   このあたりが自己責任
    ↓
  ”はい” インストールの続行


4)デバイスマネージャーの確認
  デバイスマネージャーに"Android Device -- Android Bootloder Interface"
   これが追加されます

 以上です
 これ私の場合AndroidStudio からYogaで
 実機デバッグを選択できるようになりましたが
 いかがでしょうか?


5)追記 ここがポイント

  lenovoから手に入れたADBドライバーのandroid_winusb.inf の内容を見ても
  VID PID がwindowsデバイスマネージャーで確認したYogaTablet2 830Lのそれとは
  一致していませんでした

  巷のADBドライバー改造方法ではこれを一致させる方法が紹介されています
  確かにこの方法で動く事は私も確認しましたが
  この方法が一番正解でもないようです




   


2015年7月6日月曜日

覚書:アプリの名前変更

Androidstudioの環境でアプリの名前を変える方法

app\src\main\res\values\strings.xml 内の

<string name="app_name">ここに名前を記載</string>


app\src\main\AndroidManifest.xml 内のandroid:label すべてを

        android:label="@string/app_name"

この様に記載しておく必要がある

2015年3月23日月曜日

おまけ

gradlew で ndk-build を直接実行した場合
app\build\intermediates\ndk\debug に Android.mk がその都度作成されるようです
ですので build.gradle 内の ndk{} で色々記載した結果が
本来実行したい Android.mk の内容と同じになれば
gradlewから直接コンパイルができる様になると思われます

2015年3月19日木曜日

いつのまにかAndroid Studio になってました JNI のコンパイルでハマりました

3年前から別件で忙しく全然更新していなかったら
いつのまにか開発環境がAndroid Studioになってました
そこでとりあえず ADTの環境から引っ越しです

前にやっていたのは
NativeActivity のゲームシステム構築開始で絵の表示を
libpng.a で行う実験中でした
これを実験半ばでAndroid Studioに移行することから始めた訳ですが・・・

・問題点
 スタティックライブラリである libpng.a がどうしてもgradle環境に移行出来ない
 src\main\jniLibs\armeabiに入れてもリンクしない
 
 常駐ライブラリと扱い
 android-ndk-r10d\platforms\android-?\arch-arm\usr\lib に追加しても
 リンク後に変なエラーが出る
 等々
 
最終的に従来のAndroid.mk を使う事に落ち着きましたが
ネットで先駆者の人達の情報を見ても一筋縄では行かなかったので
ここにメモします

・手法
1)Android Studio のTerminal から ndk-build の実行
 いろいろと検討した結果面倒だったので
 このコマンドが置いてある位置をシステムパスに追加しました

2)実行後に出来た libnative-activity.soの移動
 これの手作業です 自動化の方法もありそうですが後で考えます
 1)を実行すると src\main\libs\armeabiにできるので
 これを src\main\jniLibs\armeabiにコピーします
 
3)Android Studioの Run->Debug'app' の実行
 この実行の時に 上記libnative-activity.soを作成しないように
 app/gradle の内容に二点手を加えます

   sourceSets.main {
        jniLibs.srcDir 'src/main/jniLibs'
        jni.srcDirs = [] // 1)これでCソースのコンパイルは行いません
    }

    defaultConfig {
        applicationId "jp.gr.java_conf.omoshiroya.NAPng"
        minSdkVersion 10
        targetSdkVersion 10
    }
/* //2)念のため プロジェクト移行で作成されたndk指定をコメントアウト

    ndk {
    }
*/

書いてみると簡単な事ですが2日掛かりました・・・


2013年1月19日土曜日

jar 出力及び使用

1)eclipes でjarを作成するプロジェクトを作成


2)AndroidManifest.xml の変更
 Application タグの上の方
 "Define an <application>tag in the AndroidManifest.xml"のチェックをはずす

3)menu ->Export -> JAR file
 ※jarの中にAndroidManifest.xmlを含まない

4)出来上がったjarfileの使用方法
 現在では ターゲットプロジェクトのlibs にコピーする方法しか成功していない
 ※外部参照は上手くいかない