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

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