ラベル Android Studio の投稿を表示しています。 すべての投稿を表示
ラベル Android Studio の投稿を表示しています。 すべての投稿を表示

2017年10月7日土曜日

ストレージの少ないPCでも安心!?:久しぶりにAndroid studio 2.3.3 for Windowsをインストールしてみる

お久しぶりの更新です。いやー、さぼっちまった。
みなさんおげんきですかー?

私は最近、本業のテクニカルライターが忙しくなってきたり、IT翻訳の仕事がちょいちょい入ってきたりと、なかなかAndroidアプリの方はほったらかしでした。

ま、さすがにそろそろやらないと、コードの書き方忘れちまうな・・・ってことで、Android studioを久しぶりにいじってみようと。

でも最近、Macbook AirよりもThinkPadを使うことの方が多いし、・・・iOSアプリはしばらくお休みしようと思うし、いっそ開発環境をWindowsの方にシフトしてみようかな?と思い立ちました(今朝)。

で、久しぶりにAndroid studioのダウンロードページを訪れ、インストーラーをダウンロードし、実行しておりました。
・・・あれ。インストール先の画面、ちょっと変わってる?


Android studio自体のインストールフォルダと、SDKのインストール先フォルダとが別々になってる。
こりゃうれしい。
重いライブラリとかは、空き容量に余裕があるドライブに保存できるってことですかね。
・・・ちょっと今時間がないから設定しなかったけど、あとで設定変更できるとうれしいなあ。

さーて、今日は午後から日本Androidの会浜松支部の定例会。例によって行けるかどうかはわかりませんが、・・・いけるといいなあ。

***
お仕事ください!
マニュアル制作からIT翻訳まで、信頼と実績のテクニカルライターxIT翻訳者へ!
https://www.lancers.jp/profile/nekogesaku



2016年10月31日月曜日

有線がなければ、無線でつなげればいいじゃない:外出先でAndroidの実機と、無線で接続してデバッグする #android #quiita #テザリング

こんばんは。今日はITネタですよー。

ところでみなさん、USBケーブルはいつも何本くらい持ち歩いていますか?
ワタクシ、USBケーブルとイヤフォンは、消耗品と考えております。

・・・だって、すぐに壊れて使えなくなるんだもの・・・。

今日も外出先で、(進捗遅れ気味な)Androidアプリの開発をしておりまして。
修正結果を確認しようと、手持ちのUSBケーブルで実機とMacbook Airをつなげましたが・・・

どれも繋がらねえ

・・・三本ですよ?三本ともぜーんぶ。
いやいやいや、さすがに一本くらいは大丈夫だろうと・・・ orz

でもここで諦めたらいかん。
有線がダメなら、無線でなんとか繋がらないもんだろうか。

と、思ってググったら、・・・あったあった。Qiitaさんすてき。
「AndroidStudioからワイヤレスで実機ビルド for Mac」
さらにこちらも参考になりましたよ。
「無線LANを使ってAndroidアプリの実機デバッグを行ってみる。」
ふむふむ、だいたいこんな流れですな。

  1. パス通してadbコマンドが使えるようにしておく
  2. 実機のIPアドレスを調べておく
  3. adbコマンドでポートの設定
  4. adbコマンドで、Android実機にIPアドレスを指定して接続
詳しい手順は、先にご紹介した、スマートでクレバーな記事を参照していただくとして。
ワタクシはいつもの通り、自分がハマったポイントをご紹介しましょう。

まず、パス通してadbが使えるところは、上のmomotas210さんの記事を参考にしてうまくいった。ふんふん。インターネッツ最高。
で、次はAndroid実機のIPアドレスを・・・あっ。

・・・今、外出先だった・・・。

先の記事では、「Android端末と開発マシンが同じネットワークに所属する必要がある。」とか書いてあるし・・・XperiaでテザリングしてMac繋げてるだけだし・・・
・・・ん?
テザリング?
Macと実機(Xperia)、同じネットワークじゃんね・・・。

すぐさまXperiaのIPアドレス調べた。
わたしがいつも使ってるのは「OS Monitor」。Androidの設定画面でも確認できるのかもしれないけど、いいじゃん、わかりやすいんだから。


わーい、出た出た出た。「MISC」タブにいらっしゃいました。
一応、pingで確認。・・・やたっ。ping応答、帰ってきた。よしよし。

あとは、「adb tcpip」コマンドで繋げるポートを設定して、「adb connect」で実機のIPアドレスを指定して接続・・・と。

・・・あれ?(2回目)
「USBケーブルでマシンとAndroid端末をつないだ状態で以下のコマンドを」ってかいてある・・・

だめじゃーん!
そもそも、ケーブルで繋げられないから、無線試してるんじゃーん!
自分のアホさ加減に泣きそう・・・ orz

でもアホは諦めないのだ。
「なんとかならねぇかなー?」と、未練がましくケーブルをつないだり外したり、ケーブルをグリグリやっていましたら・・・

あっ。
繋がった

大急ぎで「adb tcpip」を実行。
「restarting in TCP mode port: 5555」・・・成功。
手が震える。

また接続切れないうちに、「adb connect 192.168.x.1」実行。
・・・「connected to 192.168.x.1」
・・・やたっ!繋がった!

(繋がった直後にまた接続切れてやんの・・・orz)

あとはフツーに、Android Studioのプロジェクトから、「Run」を実行。
無事、「Connected Device」に実機が表示されました。
わーい。やっと無線で接続してAndroidにアプリを展開できました。

ふー、これにて一件落着。
これまでは、まともに繋がるケーブルをあちこち探し回ったり、短いケーブルで無理して実機検証してたり、割と情けない理由で作業が滞りがちでしたが・・・

これで快適にデバッグできるってもんです。やたー。

・・・何か大事なことを忘れているような気がするけど、まあいいや。寝よ寝よ。

2016年10月28日金曜日

不変じゃあかんやん:Android SDK Camera2で撮影した画像にテキストを合成する #android #java

んはーあ。
眠い。
みーなさーん、元気ですーかー。

・・・今日は備忘録です。100%備忘録です。Androidです。アプリです。
(ブログの構成も何もあったもんじゃない書き方・・・)

いやね、せっかく来月末にABC 2016 Autumnに行くんなら、自作のアプリの一つや二つ、引っさげてったらカッコイイかなー、なんて思い立ちまして。
半ば放置してたカメラアプリをちょこちょこいじってたわけですが。

相変わらず、Camera2、難しいわ・・・。
何日も試行錯誤して、先日、やっと写真が保存できるようになりましたさ。

で、今日は、撮影した画像に文字列を埋め込んでみようかと。

撮影した画像に文字列を合成すること自体は、以前開発したアプリで経験済み。
でも、あの時は「android.hardware.Camera」使ってた。

さて、「android.hardware.camera2」使ったらどうすればいいんだべか。
ヾ(。>﹏<。)ノ


どっかでカメラから取得した画像をBitmapにして、
それをCanvasに描画して、
drawText使ってやればいいのは、同じだと思うけど・・・。

で、四苦八苦してなんとかできたのがこちら。

ImageReader.OnImageAvailableListener readerListener = new ImageReader.OnImageAvailableListener() {
                @Override
                public void onImageAvailable(ImageReader reader) {
                    Image image = null;
                    try {
                        image = reader.acquireLatestImage();
                        ByteBuffer buffer = image.getPlanes()[0].getBuffer();
                        byte[] bytes = new byte[buffer.capacity()];
                        buffer.get(bytes);

                        BitmapFactory.Options bitmapFactoryOptions = new BitmapFactory.Options();
                        bitmapFactoryOptions.inMutable = true;
                        Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, bitmapFactoryOptions);
                        Paint paint_text = new Paint();
                        paint.setColor(Color.argb(100, 125,0, 34));
                        paint_text.setColor(Color.argb(255, 0, 0, 0));
                        paint_text.setTextSize(50);
                        Canvas bitmapCanvas = new Canvas(bmp);
                        bitmapCanvas.drawText("Text string", 500, 500, paint_text);
                        bitmapCanvas.save();

                        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                        bmp.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
                        byte[] bytes_toSave = byteArrayOutputStream.toByteArray();
                        saveImage(bytes_toSave);

                    } catch (FileNotFoundException e){
                        e.printStackTrace();
                    } catch (IOException e){
                        e.printStackTrace();
                    } finally {
                        if(image != null){
                            image.close();
                        }
                    }
                }
                private void saveImage(byte[] bytes) throws IOException {
                    OutputStream outputStream = null;
                    try {
                        outputStream = new FileOutputStream(mFile);
                        outputStream.write(bytes);
                    } finally {
                        if(outputStream != null){
                            outputStream.close();
                        }
                    }
                }
            };

bitmapを作る時に、不変にしてなかったところで、しばらく蹴つまずいておりました。
このへんですね。


BitmapFactory.Options bitmapFactoryOptions = new BitmapFactory.Options();
bitmapFactoryOptions.inMutable = true;
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, bitmapFactoryOptions);

上の一行目で、BitmapFactoryに渡すオプションの箱を用意。
二行目、「.inMutable」で、ビットマップを変更可能にするオプションを定義。
で、BitmapFactoryでBitmap作るときに、定義したオプション、「bitmapFactoryOptions」を渡してあげましたさ。

ほいっとな。

んー。適当だけど、とーりあえず、写真に文字列のっかりました。

こんだけのことだけど、久しぶりにソースいじったら苦労したー。
しかも、手持ちのUSBケーブルがどれもこれも断線してて、Macと実機を接続できるケーブルを探すのがこれまた一苦労。

最近、いらん苦労ばかりしてる気がする・・・


位置とか書式とかは、また明日にしよう。
もう寝るー。


2016年6月29日水曜日

そりゃまあ動くわな。:android.hardware.camera2使ってみた

こんばんは。眠い。こんばんは。

ふと、Androidで新しいカメラアプリを開発しようと思い立ちまして。
以前開発したカメラアプリは、実はこのあいだ非推奨(deprecated)になった「android.hardware.Camera」を使っていまして。

代わりに「android.hardware.camera2」を使え、とのことらしいんですが。

・・・非推奨、と言ってもまだ使えるしー、「camera2」が使えるデバイスはまだまだ限られているらしいしー。
ちょっと様子を見てたんですが・・・。

ちょっと芋焼酎の水割りで気が大きくなったところで、
「よっしゃCamera2やってみたろうかい」と相成りました。
どうせ「2」がついただけじゃろ、がははは、ってノリで(水割り一杯目)。

・・・。
あかんかった。ノリでなんとかなるもんじゃなかった。
なんか、CameraとCamera2は、じぇんじぇん違うらしい。
ググると色々サンプルが出てくるのですが、どれもこれも結構難しい。

素面でないと無理そうだ。
うーん。どうすべ。コポポポポ(水割り二杯目)。

でもまあ、せっかく検索に時間を費やしたのだから、何もできずに寝てしまうのは惜しい。
と言うより、このまま寝たら、きっと明日は気になって気になって仕事にならない。

・・・仕方がないので、Googleさんのサンプルを導入してみることにしました。
サンプルはこちらのGitHubに全ソースがありましたよ。

得てして「サンプル」というのは、そのまま使っても、ほぼ動かないもんですが。
今回のサンプルは、ちょーっと手直しをしただけで、すぐに使えるようになりました。
さっすがGoogleさまですね。いひひ(水割り三杯目)。

さて、とにかく使える、トイうコトが分かったところで、明日kらまt、サンプルにちょっとずつ手をkわえていきまsh

・・・。
さすがにそろそろ寝ようかな。お休みなさい。







2015年2月14日土曜日

きたきたきたー。:GitHubからAndroid Studioにプロジェクトをチェックアウトしてみた

みなさんこんにちは!
今日は日本Androidの会浜松支部の定例会にきています!

今日のお題は、「Android Studio」。
そろそろ開発環境もAndroid Studioにシフトしないとまずいよねー、ということで、勉強会に参加です。

勉強会そのものはAndroid Studioのインストールなど環境構築から始まったのですが、私は前回すでに環境構築すませてたので、らくちんらくちん(遅刻もこれでとりもどした)。

で、HelloWorldもなんなく実機で動作しました。
ケーブルでMacBook Airにさして、そのままRunするだけ。
・・・なんか、Windows 8であれだけ苦労したのが嘘のよう。

で、お次は・・・。支部長さんがOpenStreetMapを表示するサンプルアプリを作ってきて頂いたので、それをAndroid Studioにインポートして動かしてみよう、と。
ソースコード自体はGitHubにあるらしい・・・。

まずは既存のプロジェクトを全部閉じて、「Checkout project from Version Control」を選択します。

で、「GitHub」を選択。

GitHubへのログインが必要になりますよー。
ログインできたら、「Vcs Repository URL:」にプロジェクトのURLを入力、「Clone」をクリック。

・・・えええええ!?の、No files are ...?

あ、開いてないだけだった。画面左から適当に開けばオッケー。

・・・わーい。
これで幸せになりましたー。
Macbook Airで開発ってのもらくちんでいいですねー。