2019/09/28

2019/9時点、MacOSX でAndroid 開発する場合、Java 8 が必要 ライセンスの関係上 Oracleにユーザ登録する必要があるが、Homebrew でオープン系でJava8構築することも可能

homebrew-cask-versions で Java8インストール

caskインストール

$ brew tap homebrew/cask-versions

caskで adoptopenjdk8 corretto8 zulu8インストール

$ brew tap homebrew/cask-versions
$ brew cask install adoptopenjdk8
$ brew cask install corretto8
$ brew cask install zulu8

jEnv

Java のバージョンを複数管理したい場合は jEnvを利用する *Android開発だけならば必要はない

$ git clone https://github.com/gcuisinier/jenv.git ~/.jenv

.bash_profile(.bashrc)設定

.bash_profileもしくは .bashrc に環境変数を設定

export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

jEnvバージョン確認

$ jenv versions
* system (set by /Users/yoo/.jenv/version)

Java情報確認

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.8.0_221, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home

  2019/09/24

項目

  • Xcode
  • JavaSDK8
  • gradle
  • Kotlin
  • Android Studio

Xcodeインストール

もろもろツールをインストールするためにXcodeをインストールして起動済みにしておく

Java SDK8のインストール

2019/09/25時点でライセンスの関係上、Oracleからインストーラをダウンロードするか、Homebrew と cask でインストールすることになる。

Oracle JDK8インストーラー

Java SE Downloadsからインストールする場合にユーザ登録が必要

Java SE Development Kit 8u221

JDK

JDK

$ java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

homebrew-cask-versions で Java8インストール

インストーラを利用せず、Homebrew で構築することも可能 Java8 を HomebrewとjEnvで構築

SDKバージョン切り替え

$ jenv global SDKバージョン

Gradleインストール

Gradle は オープンソースのビルドシステム Android Studio を利用するときに便利

SDKMANのインストール

$ curl -s "https://get.sdkman.io" | bash $ source .sdkman/bin/sdkman-init.sh

SDKMANバージョン確認

$ sdk version SDKMAN 5.7.3+337

gradleインストール

$ sdk install gradle

gradle バージョン確認

$ sdk list gradle ... Available Gradle Versions ================================================================================ > * 5.6.2 5.0 3.5 2.1 ...
$ gradle --version Welcome to Gradle 5.6.2! ... Kotlin: 1.3.41 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019 JVM: 1.8.0_221 (Oracle Corporation 25.221-b11) OS: Mac OS X 10.14.6 x86_64

<

h2 class="h2">Kotlinインストール

$ sdk install kotlin

Kotlin バージョン確認

$ sdk list kotlin ================================================================================ Available Kotlin Versions ================================================================================ > * 1.3.50 1.2.50 1.1.4 1.0.1-2 ...

利用SDKの確認

$ sdk current ... gradle: 5.6.2 kotlin: 1.3.50

Android Studioインストール

Android Studio ダウンロード

AVD(Android Virtual Device)

AVD Manager から仮装端末をインストール

SDK Manager

SDK Manager で不足しているツールをインストールする

Android SDK Platforms

SDK Platforms で利用したい Android OSバージョンをインストール Android Studio Menu

Android SDK Tools

Android Studio Menu

  • Android SDK Build-Tools 28
  • Android Emulator
  • Android SDK Platform-Tools
  • Android SDK Tools
  • Intel x86 Emulator Accelerator(HAMX instraller)
  • NDK

Android SDK Platform Tools

Android SDK Platform Tools

Android SDKコンポーネントで、adb、fastboot、systrace などのAndroid プラットフォームとインターフェース

Android SDK Tools

SDK Tools

デバッグツール一式を含む Android SDK のコンポーネント

Android 9.0 の場合 - Android SDK Platform 28 - Sources For Android 28 - Google APIs Intel x86 Atom_64 System Image

Android NDK

Android で C / C++ コードを使用できるようにするツールセット

Mac OSX 設定

.bash_profileに環境変数設定

export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools eval "$(pyenv init -)"

adb確認

$ adb --version Android Debug Bridge version 1.0.41 Version 29.0.0-5611747 Installed as /Users/yoo/Library/Android/sdk/platform-tools/adb

  2014/12/25

Android StudioがPreview版のまま放置していたので、今更ながら環境再構築 Eclipceベースでインストールするのと比べて格段に楽になってます!

「Java JDK」

Java JDKはOSXを最新にしていれば、自動インストールされる

「Android Studio OSX」ダウンロード

http://developer.android.com/sdk/index.html

次にインストール・起動後、SDKの選択場所が問われるので、SDKを用意する

「Android SDK OSX」ダウンロード

http://developer.android.com/sdk/installing/index.html?pkg=tools

SDKをダウンロード&解凍後、任意のディレクトリに移動して「Android Studio OSX」起動後に選択する。 android studio

例)/Users/ユーザ/Library/Android/android-sdk-macosx/

「Android SDK Manager」でTools等をインストール

「Android Studio」で「Android SDK Manager」を起動 android studio

Tools、API、Extraなど必要な物を選択してインストール android studio

この辺は作成するアプリ、OSバージョン、端末環境によって異なるので臨機応変に。

Licenseに同意する必要があるので、ある程度一気にインストールした方が楽かもしれない。 android studio

ちなみに、前のプロジェクトをインポートしたら日本語が文字化けした。 というより、Android Studioからgradleビルドになったため、build.gradleファイルに以下を記述する必要があるようだ。 [java] tasks.withType(Compile) {   options.encoding = 'UTF-8' } [/java]

  2013/04/01

ServiceでTimer を動かすでServiceを利用してタイマーを動かしたが、handlerを利用して実行する事もできるみたいなのでメモ。

サンプル

ストップウォッチの要領で動作します。 [java] timer = new Timer("timer task", true); timer.schedule(new TimerTask(){ @Override public void run() { handler.post( new Runnable() { public void run() { lapTime += 0.01f; DecimalFormat decimalFormat = new DecimalFormat("0.00"); BigDecimal decimal = new BigDecimal(lapTime); float outputValue = decimal.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); timeTextView.setText(decimalFormat.format(outputValue)); } }); } }, 10, 10); [/java]

[java] new Timer("タスク名", true); [/java] のtrueはデーモンスレッドで実行します。

  2012/10/10

久々にAndroid x Eclipseを使って、アップデートしたらコード補完ができなくなりました。

ネットで調べて、新規インストールしたEclipseでコード補完候補が出なくなってしまった場合の対処法 を参考にしました。

結論を言うと

・.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs を開く ・content_assist_disabled_computersを無効にする

Eclipseコード補完

ショートカット変更

人によっては、OSXのショートカットとバッティングしてしまうので、ショートカットを変更します。

環境設定... > General > Keys を開き、Content Assist にショートカットを割り当てます。 Eclipseコード補完

  2012/10/10

ここを参考にメモ

AndroidManifest.xmlの設定で消す

タイトルバーを消す


true

ステータスバーを消す


true

フルスクリーンにして消します。

タイトルバーの影を消す


@null

プログラムで消す

タイトルバーの影を消す

[java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.game); } [/java]

ステータスバーを消す

[java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.game); } [/java]

レイアウト系なので何となく設定で消したいですが、条件に合わせて表示する事があればプログラムですかね? ただ、プログラムで消した方が作業は早いか(?!)

  2012/03/30

久々に、Eclipseを開いたら Androidプロジェクトがビルドできない。 原因は自分はDeveloperフォルダに Android SDKを入れていたので、Xcode のアップデートをした時に根こそぎ削除された事によるもの。 (OSX も Lion にしたのもあるか?)

幸いゴミ箱を空にしなかったので、Developerフォルダを戻して Eclipseを再起動してみる。 しかし、

Your Project contains error s please fix them before running your application

プロジェクトクリーンしてもダメです。

色々面倒くさそうなので EclipseをHelios から Indigoに、Android SDKも最初からセットアップする事に。 しかし、それでも解決しない。 こうなると何かの設定が残ってるしか考えられないので調べたら、 your applicationエラー の記事を見つけた。 「debug.keystoreの有効期限切れ」が原因で、debug.keystoreを削除するだけだったというオチでした。 debug.keystore 感謝。

あと、自分で有効期限設定できるみたいです。 [Android][SDK]祝 Androider1周年

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 1800 -dname "CN=Android Debug,O=Android,C=US"

  2011/08/14

画面固定の設定を、よく忘れてしまうのでメモ。 Manifest.xml で android:screenOrientation を指定する。

縦固定:android:screenOrientation="portrait" 横固定:android:screenOrientation="landscape"

Activity レベルで画面固定


        

  2011/08/14

ZipFile と ZipEntry ~Androidでzipを解凍する を参考に ZIP ファイルを解凍してみる。

サンプルコード

ボタンをクリックして、SDカード/パッケージ名/sample.zip ファイルを SDカード/パッケージ名/sample/ に解凍。 ※sample.zip は sample ディレクトリを含むZIP [java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

    Button zipAcvhiveButton = (Button) findViewById(R.id.zipArchiveButton);
    zipAcvhiveButton.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v) 
        {
            String zipfileName = "sample.zip";
            String baseDir = Environment.getExternalStorageDirectory().getPath() 
                    + "/" + v.getContext().getPackageName() + "/";
            String zipPath = baseDir + zipfileName;
            String sampleDir = baseDir + "sample";
            new File(sampleDir).mkdir();
            zipArchiveFiles(zipPath, baseDir);
        }
    });
}

public void zipArchiveFiles(String zipPath, String outputDir)
{
    err = 0;
    try {
        ZipFile zipFile = new ZipFile(zipPath);
        Enumeration<? extends ZipEntry> enumeration = zipFile.entries();
        while(enumeration.hasMoreElements())
        {
            ZipEntry zipEntry = enumeration.nextElement();
            String outputPath = outputDir + zipEntry.getName();
            zipArchiveFile(zipPath, zipEntry.getName(), outputPath);
        }
        zipFile.close();
    }
    catch(Exception ex)
    {
        err = -1;
        Log.d( "Err", "" + ex);
    }
}

public int err = 0;
public void zipArchiveFile(String zipPath, String file, String outFile)
{
    err = 0;
    try 
    {
        ZipFile zipFile = new ZipFile(zipPath);
        ZipEntry entry = zipFile.getEntry(file);
        InputStream inputStream = zipFile.getInputStream(entry);
        OutputStream outputStream = new FileOutputStream(outFile);

        byte[] buffer = new byte[ 1024 * 4 ];

        int r = 0;
        while( -1 != ( r = inputStream.read(buffer)) )
        {
            outputStream.write( buffer, 0, r );
        }
        outputStream.close();
        inputStream.close();
        zipFile.close();
    }
    catch( Exception ex )
    {
        err = -1;
        Log.d( "Err", "" + ex);
    }
}

[/java] Android の Zip書き出しは、ちょっと手続きが多いみたいです。

Environment.getExternalStorageDirectory().getPath() で SDカードのパスが取得できる。 zipFile.entries() でZip一覧(ZipEntry を継承したEnumeration)を取得し、ループで1ファイルずつ解凍する。 ちなみに、zipEntry.getName() でファイル名を取得するが、Zip にディレクトリを含む場合はディレクトリを含むパスになる。

sample/xxxx.txt

Zip からの書き出しは ZipFile() で各ファイルパスを指定し、zipFile.getInputStream() でInputStream オブジェクトを取得。

InputStream をループで回し、OutputStream で指定したパスにファイルを書き出す。 ※サンプルの場合、1024 x 4 バイトずつ処理

うーん、もうちょっと簡単にならないのかな? もしかしたら、他の方法もあるかも知れませんが。。。

  2011/07/12

dispatchKeyEvent をオーバライドすることで、キーイベントを取得できる。 これを利用して、KeyEvent.KEYCODE_BAK (戻るボタンフラグ)を判別して、 親クラスの dispatchKeyEvent をさせなければよいみたいだ。

戻るボタンを無効にする

[java] @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { return true; } } return super.dispatchKeyEvent(event); } [/java]

<< Top < Prev Next > Last >>
Java8 を HomebrewとjEnvで構築
Android Studio環境構築 2019
Android Studio OSX再構築
Timerを動かす(その2)
[OSX]Eclipseでコード補完が出なくなった
タイトルバー、ステータスバーを消す
Android アプリがビルドできない
画面固定
Zipファイルの解凍
戻るボタンを無効にする
画面をロック解除
ToggleButton に画像をつける
OSX で adb のパスをとおす
ServiceでTimer を動かす
GalleryのViewイベント
NFC-Contact-Exchanger
日本語ローカライズ方法
ViewFlipper で画面スライド
Activity 終了後に元画面で処理をする
設定画面を作る
Iterator と多次元配列のループ
Intentでオブジェクトの受け渡し
Android Market に登録 -apk作成-
widgetの表示・非表示
Xperia arcの表示不具合?
GPS切り替えはできない(?)
機内モードの切り替え
Sqliteを利用する その2
アプリケーションのタイトルバーを非表示にする
Wifiの有効・無効
Bluetoothメモ
Sqliteを利用する その1
設定ファイル保存
タブ画面を切り替える
簡単なアイコン作成
日付選択ダイアログを使う
ListViewのカスタマイズ
リソースファイル名で先頭に数字は使えない
エミュレータ起動エラー
ログ出力方法
Android 3.0正式版リリース
Androidは実はJavaではない?
ListViewのイベント
AlertDialogを使う
XPERIA X10 エミュレータ追加
JSONを使ってみる
プログラムする前に触ってみる
Android勉強再開
iPhoneとAndroidアプリを同時開発できるcorona
Androido -勉強本購入-