2016年12月26日月曜日

AdSense登録について

こんにちは。

12記事で、再審査を依頼したところ、AdSenseの審査通りました。
AdMobも復活しました。

とりあえず、ほっとしました。

2016年12月22日木曜日

非同期処理について・・・AsyncTaskLoader

こんにちは。

非同期処理のAsyncTaskについて、以前書きました。 今日は、非同期処理AsyncTaskLoaderについて書きます。
AsyncTaskLoaderは、画面の表示設定などのメインスレッドで動作させる処理とバックグラウンドで行いたい処理を分けることができます。


まずは、Activityから見ていきます。
メインスレッドで動作する部分です。


Activityを、「implements」します。
そして、onCreateLoaderとonLoadFinishedをOverrideします。onCreateLoaderで、Loaderクラスを引数を渡してnewします。
onLoadFinishedで、引数で渡されるデータからデータを取得し、画面に設定します。


次に、LoadLoaderクラスを作成します。

コンストラクタで、引数を渡し、loadInBackgroundで、非同期処理を実行します。


非同期処理の実行は、以下のようにします。

最後に、Loaderの破棄が必要です。


2016年12月21日水曜日

ドコモあんしんスキャンについて


こんばんは。

先週の土曜日くらいに、突然、開発中のアプリがドコモあんしんスキャンで、「PUP」として検出されました。 「PUP」とは、不審なプログラムのことで、自己増殖や破壊活動をするプログラムのことだそうです。

ドコモあんしんスキャンのログを見ると、「パッケージ〇〇〇がAndroid/Agent.NG!pkgとして検出されました。」と出力されています。

簡単なHello Worldのテストアプリでも、PUPとなってしまいます。


なにも思い当たる節がありません。

・・・調査に2日くらい費やしてしまいました。

原因は、build.gradleで「com.android.tools.build:gradle:2.2.3」を使用しているから、みたいです。

「2.2.2」に戻したら、PUPと検出されなくなりました。
いつ、「2.2.3」に上げたのか、覚えていないです。 ドコモあんしんスキャンが対応するか、gradleが対応するまで、「2.2.2」で開発しようと思います。


本当につまらないことで、はまってしまい、禁煙中も重なり、イライラしました・・・。

あんしんスキャンなんて、アンインストールしたいところですが、開発する側としては、今回のようなことがないか、テストしていかないといけません。



2016年12月16日金曜日

非同期処理について・・・AsyncTask

こんにちは。

お買い物電卓のネタはそろそろなくなってきました。今日からは、現在作成中のアプリで勉強したことを書いていきます。

まずは非同期処理についてです。
Androidでは、DB読み込みなどの重い処理をメインスレッドで行うと、応答なしエラーとなってしまいます。その為、重たい処理は、別スレッドで行う必要があります。

AsyncTask


例です。
Asynctaskのサブクラスを作成します。宣言時に型引数を、実行時に渡すパラメータ、進捗として渡すパラメータ、処理の結果の順に指定します。この例では進捗に関しては省略しています。
まず、コンストラクタで、イメージビューを内部変数に設定しています。
onPreExecuteは、メインスレッドで動作し、事前準備を行いますが、今回は特に記述していません。
そして、doInBackgroundに、バックグラウンドで行いたい処理を記述します。
最後に、onPostExecuteも、メインスレッドで動作しますので、イメージビューにBitmapを反映させています。


呼び出し側を以下のようになります。
API level 11からは、executeOnExecuter(AsyncTask.THREAD_POOL_EXECUTOR, imageUrl)とするようです。


このように、AsyncTaskでは、メインスレッドとバックグラウンド、それぞれで行いたい処理が混在してしまいます。そこで、それらを分離したものがAsyncTaskLoaderです。AsyncTaskLoaderについては、次回以降に書こうと思います。



2016年12月14日水曜日

JAVAのBigDecimalについて

こんにちは。
間が空いてしまいました。こんなことでは、AdSenseの審査通りませんね。

今日は、JAVAのBigDecimalについて書きます。

お買い物電卓でも使用しています。電卓のように正確な値を扱いたい場合に使用します。
切り捨て、切り上げ、四捨五入などの指定をできます。

値を設定するには、コンストラクタに値を渡して設定するか、”valueOf”を使用します。

足し算をしてみます。



引き算の場合は、”subtract”、掛け算の場合は、”multiply”、割り算の場合は、”divide”となります。

割り算の場合、有効桁数を指定する必要があります。小数点以下5桁で切り捨ての例です。



割り算で、無限小数になる場合は、この丸めを指定しないと例外となってしまいます。
切り捨ての他に、切り上げや四捨五入なども指定できます。詳しくはjavadocを参照ください。

また、掛け算で、有効桁数を指定したい場合は、以下のようにします。



BigDecimalから値を取り出したい場合は、”toString”や、”intValue”などで取り出します。

以上となります。

2016年12月6日火曜日

ボタンエフェクトripple

こんにちは。

ボタンエフェクトのrippleについて書きます。

前述の入門書「Androidアプリ開発入門」で、波紋のように広がるRipple Effectを薦めていました。私はあまりRipple Effectを使ったアプリに触れたことがなかったのですが、薦めていたので勉強がてら使ってみることにしました。

価格:2,970円
(2016/12/5 19:04時点)
感想(1件)



res\drawableフォルダの下に以下のようなnumber_button_background_ripple.xmlファイルを作成します。



activity.xmlのボタンのbackgroundに作成したxmlを指定します。

これで、クリックしたときに、波紋のように広がるようになります。

しかし、rippleは、API level 21以上です。Android開発初心者の私は、それをすっかり忘れていて、エラーになってしまいました。


エラー内容:
android.view.InflateException: Binary XML file line #231: Error inflating class Button


少しはまりました。
API level 21未満の場合は、別のdrawableファイルを使用するようにしました。


res\drawable-v21フォルダの下に以下のようなnumber_button_background_ripple.xmlファイルを作成します。
フォルダが別で、ファイル名は同じです。


これで、21以上の場合は、ripple効果が適用され、21未満では、適用されないようになります。
ちょっと感動したのですが、フォルダを分けて、それぞれのAPI levelで実行されるのって、素晴らしい機能ですね。

2016年12月5日月曜日

テキストのスクロール

こんにちは。

今日は、簡単ですが、テキストビューのスクロールについて書きます。

お買い物電卓の計算結果の下の計算式で使用している横スクロールです。
activity.xmlを以下のようにしました。

HorizontalScrollViewの中にTextViewを置きます。これだけで表示文字数が多くなると横スクロールできるようになります。


あるタイミングで、自動的に表示位置を調整したい場合は、以下を実行します。

お買い物電卓の計算式の場合は、右端にスクロールするようにしました。

2016年12月2日金曜日

AdSense登録について、続報

こんにちは。

前回の記事にAdSenseへの登録を書きましたが、まだ足りませんでした。審査が始まってすらいませんでした。
毎日、まだかまだかと待っていたのですが・・・。

前回の記事から実施したことを記載していきます。
AdSenseにログインして、その他の設定(?うろ覚えです)で、ブログに埋め込むHTMLを取得します。そのHTMLをブログのHEADの直後に貼り付けます。

そのままだと、XMLがエラーとなり、保存できないので、<script async ~>の部分を、<script async='async' ~>に変更します。

その後、AdSenseで設定完了みたいなボタンをクリックすると、審査が開始されます。

審査は二日ほどで完了しました。結果は・・・不承認です。
理由は、不十分なコンテンツということで、まだまだ記事が足りなかったようです。

もっと記事を書いてから、再チャレンジしたいと思います。

AdSenseが不承認となると、AdMobも無効となってしまいました・・・。

2016年11月24日木曜日

BloggerでのAdSense登録について

おはようございます。

今日は東京は朝から雪です。まだ降り続けていて、積もっています。

BloggerでのAdSenseの登録がうまくいかなかったのですが、進展したので、書いておこうと思います。

androidのアプリを作成して、AdMobの広告を表示させていたのですが、その後に、Bloggerでブログを書き始めました。ブログにもAdSenseの広告を表示させようと、ダッシュボードで収益をクリックして表示されるボタンをクリックすると、「AdSenseで登録してください」のようなことが書かれていました。

そこで、AdSenseで登録しようとしたのですが、ブログのURLを入れると、エラーとなりました。

ブログを作成して間もないからかなと思って、しばらく様子を見ていたのですが、一向にうまくいきません。色々、ググってようやくわかったのですが、どうやら独自ドメインを取得しないとだめだったみたいです。

そこで、独自ドメインをお名前.comで取得し、Bloggerに設定した後で、AdSenseで登録したら、通りました!

ドメイン設定をするときは、以下のHPを参考にしました。

http://www.furimuke.com/2013/09/comblogger.html

ただ、実際に広告がブログに表示されるのは、時間がかかるようで、まだ現時点で表示されていません・・・。


android studioでバージョン管理、Git

おはようございます。

個人でもソースのバージョン管理をしたかったので、Gitの設定の仕方を書きます。

(1)Gitのインストール
Gitを以下からダウンロードしてインストールします。

https://git-scm.com/


(2)TortoiseGitのインストール
TortoiseGitを以下からダウンロードしてインストールします。

https://tortoisegit.org/


(3)リモートリポジトリ用のフォルダを作成

インターネット上に保存されるOneDrive上にリモートリポジトリ用のフォルダを作成します。
フォルダ名は、「〇〇〇.git」とします。
作成したフォルダを右クリックし、「Git ここにリポジトリを作成」をクリックします。
「Bareを生成」はチェックを入れて、OKをクリックします。






(4)android studioでの設定

管理したいプロジェクトを開きます。

①メニューの「File」の「Settings」を開きます。
左で「Version Control」の「Git」を選択し、右の「Path to Git executable」にGitのパスを設定します。(例:C:\Program Files\Git\bin\git.exe)

②メニューの「VCS」の「Enable Version Control Integration」をクリックし、Gitを選択します。
 


(5)android studioでCommit

下部にある「Version Control」を表示します。



 
「Unversioned Files」の「browse」をクリックします。
管理したいファイルを選択(全選択でよいと思います)し、横の「+」をクリックします。
(ファイル数が少ない場合は、「browse」は表示されないようなので、「Unversioned Files」を「Default」にドラッグしてください。)
Defaultにファイルが入ります。

「Default」を選択した状態で、下部の横にある「VCS↑」のアイコン(Commit Changes)をクリックします。



「Commit Message」にコメントを記述し、「Commit」をクリックします。


(6)android studioでPush

メニューの「VCS」の「Git」の「Push」をクリックします。
「Define remote」をクリックします。


「URL」に(3)のパスを入力し、OKをクリックします。
「Push」をクリックします。

以上となります。

2016年11月15日火曜日

GridLayoutのWeight

こんばんは。


GridLayoutのWeightは比重を調整するのに便利です。
GridLayoutのWeightは、API level 21から使用可能ですが、サポートライブラリを使用すれば、それ以前でも使用できます。

「build.gradle」に以下のサポートライブラリを追加します。

build.gradle
    dependencies {

        compile 'com.android.support:gridlayout-v7:25.0.0'


activity等のxmlは以下のようになります。
layout_rowWeight、layout_columnWeightで、weightを設定できます。

activity.xml


 お買い物電卓で、このGridLayoutのWeightを使用しています。

android studioセットアップ

こんばんは。

android studioのセットアップについて書こうと思います。
OSはWindows10です。

------------------ セットアップ ------------------


JDKを以下からダウンロードします。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

ダウンロードしたJDKをインストールします。

そして、環境変数に以下を設定します。
システム環境変数のpathに「C:\Program Files\Java\jdk1.8.0_102\bin」。
ユーザ環境変数にJAVA_HOME、「C:\Program Files\Java\jdk1.8.0_102」。
再起動します。


次に、android studioを以下からダウンロードします。

https://developer.android.com/studio/index.html?hl=ja

ダウンロードしたandroid studioをインストールします。

------------------------------------------------

android studioのセットアップは、以上です。
ここまでは簡単にできます。

私は、その後のエミュレータの起動で躓きました。
エミュレータを起動しても、「android」 という画面で止まってしまいます。
HAXMの設定をしたにも関わらずです。

その時のPCは、メモリが4.00GBでした。
システム要件に、メモリは8GB以上を推奨とあるので、もう古いPCでもあったので、
8GBのDELLのPCに買い換えました。
新しいPCにセットアップして、エミュレータを起動したら、動きました!
Windowsの起動も遅かったり、Windowsが何回もフリーズしていたので、思い切って
買い換えてよかったです。7万ちょっとでした。

あと、エミュレータは、立ち上げっぱなしで実行、停止を繰り返すのですね。
はじめ、知らなくて、いちいちエミュレータの×印を押して、閉じてしまっていました。
無駄に時間がかかってしまっていました。

android studioでの開発をするにあたって、本を一冊読んで学習しました。
少し難しいところもあって、開発をやりつつ、また該当箇所を読み返していこうと思います。
読んだ本は、↓です。

価格:2,970円
(2016/11/15 21:59時点)
感想(1件)

2016年11月11日金曜日

androidアプリ作成開始

個人で、androidアプリを作成し始めました。
作成したアプリと、作成過程で得た技術情報を載せていきたいと思います。



経験は、主に、C、VB6.0、VC++、VC#などで、JAVAはほとんどありませんでした。

練習のつもりで最初に作成したのが、「お買い物電卓」です。




スクリーンショットです。

google playへのリンクを貼っておきます。

google play