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

2015年3月19日木曜日

【adb】adb shell am -n で起動しない【Activity起動】

開発時にLAUNCHERから遠いActivityに遷移したいけど、一々操作するの面倒って事がよく有りますよね。

ゲームのクリア画面とか、特殊条件時にしか出ない画面とか・・・。

そんな時に使えるコマンドがadbに用意されております。
というかこの話題でこのブログ来たって事は既に他の記事で見てやってダメだった方かと思います。
よって本題

$adb shell am start -n <パッケージ名>/<Activityまでのパス>


他の解説サイトでは<Activityまでのパス>を「.MainActivity」とか書いてるけど嘘っぱちです。(いや、正しいんですけど・・・、公式にもそう書いてあるんだけど・・・)

例えばGradleのFlavorsで生成するapk変えた時とかに引っかかります。
apk毎にパケージ名は違うけど、Activityまでのパスは共通なんです。




例えば
- [com.pakage.name]
      - [hoge.hoge]
             - FugaActivity

この場合
adb shell am start -n com.pakage.name/com.pakage.name.hogehoge.FugaActivity
で行けるはず。(試してはない)





Flavorsでパッケージネームを変更してる場合
- [com.pakage.name]
      - [hoge.hoge]
             - FugaActivity
~~~~~
- build.gradle 内で  applicationId "com.piyopiyo.foobar"

この場合
adb shell am start -n com.piyopiyo.foobar/com.pakage.name.hogehoge.FugaActivity
で行けるはず。(試してない)



後、この後ろに --elとか--eiとかそんなの渡すと起動するActivityのBundleに引数渡せる。
その辺はここ参照。
http://developer.android.com/tools/help/adb.html#IntentSpec



(´Α`;)何時間か無駄にした。
「.MainActivityで起動できる」って記事が多くて信ぴょう性高そうに思えてしまってた・・・。

2013年3月8日金曜日

【Android】mupdfをAndroidに導入してみる【PDF】

最近更新していないや・・・
日記とは何だったのか。。。

今回は、mupdfに関してです。
AndroidでpdfのViewerを作ろうと思ったら一度は見かけるのでは無いでしょうか。

しかし、それでいて導入方法が分かり辛い(笑

今回は取り敢えず、mupdfのソースコードを実際にAndroidで動かす所までを
追って行きたいと思います。

NDKの導入が完了していて、"ndk-build"コマンドが通るように
パスを通してある状態を前提とします。

【1】
ソースの場所
http://mupdf.com/download/
ここから拾って来ませう。現在の最新版は「mupdf-1.2」でした。

archiveから「mupdf-1.2-source.zip」と「mupdf-thirdparty-2012-08-14.zip」をダウンロードしてきます。どちらも解凍します。

【2】
解凍してできた、「mupdf-1.2-source」の直下に「mupdf-thirdparty-2012-08-14」の中身(freetypeやらjbid2decやら)を入れます。

一応、「mupdf-1.2-source」のフォルダ名を「mupdf-1.2」に変更。

【3】
コマンドラインから、
$cd mupdf-1.2
$make
$cd Android
$ndk-build

【なんかエラーが出た場合】
$cd mupdf-1.2/Android/jni
$vi Application.mk
ここの中の
「#NDK_TOOLCHAIN_VERSION=4.4.3」
を
「NDK_TOOLCHAIN_VERSION=4.4.3」
こうしてコメントアウトを取ります。
んでもう一回コマンド試してみてください。

【完了】

こ、これで通るはず。。。
後は、AndroidのプロジェクトをEclipeで読み込んでやるだけ!
ね?簡単でしょ?(2日近く悩んでました)

色々メソッド等の紹介もしたいけど、自分も読み込んでいないので今日はここまで。。。



2012年12月7日金曜日

【Android】Ingressでポータル追加申請の方法【Ingress】

Googleの出したAR技術用いたゲーム「Ingress」

遊びたいのにポータルが全然近くに無いよ!!

って事でポータルの申請方法纏めておきます。


てか公式?にあるんですけどね・・・
ポータル追加方法とかの公式


Google先生にお力を借りて日本語訳


新規ポータルの提出

ポータル候補地の撮影と提出をする事によって、プレイフィールドへの追加の手助けをして下さい。
候補ポータルを送信する手順は次のとおり
  • カメラアプリでのGPSが有効になっていることを確認してください(オープンカメラ > [設定]> [ ストアの場所 > ON、オンにする必要があるかもしれない設定 > 位置情報サービス > 共有ピクチャの場所、利用可能な場合)。
  • 標準のカメラアプリでは、まずAndroid携帯で写真を撮る
  • 写真のオプションで共有を選択、
  • 共有「NIA Super Ops (入口ロゴ付き)」を選択
  • ポータルと提案するタイトルを入力して[OK]を選択。
  • これは、オブジェクトの写真と場所で私たちのアンティックオプスチームに送る電子メールを準備します。
  • 電子メールを送信します。
  • 当社の運用チームは、画像やオブジェクトの位置を確認し、それがポータルのための私達の一般的な基準を満たしている場合、ゲームデータベースに追加します。
一般ポータル基準:
  • 安全と公衆がアクセス可能である必要がある事
  • オブジェクトの例の種類:
    • 像
    • 独自のアーキテクチャ
    • 屋外壁画
    • 歴史的建造物
    • 特別な屋外ビル
    • ユニークな地元企業
ポータルが受け入れられるかどうかの決定は、2〜3週間以内に行われます。
受け入れられた後、2-3週で実際にそのポータルが活用される事を期待します。


・・・こんな感じ?訳は適当なので原文をご参照ください!
自分の場合は、撮った写真を「プレビュー」で開いて、
メニューボタン押して、「共有」から「NIA Super Ops」が選択できました。

実際にやってみると。

 写真を撮って・・・
 共有からNIA Super Opsを選択
 タイトル入力して

メーラーで送信!(実は英語で入力し直しました)













以上、ポータルの追加申請方法でした。

2012年12月2日日曜日

【Android】カラーコード一覧をxmlに纏めてみた【レイアウト】

12月に入り、アドベントカレンダーが始動しはじめたようです。

自分も参加したかったのですが、どうもマトモなネタをやっている時間が取れそうに無い・・・
でも悔しい
取りあえず12月中はブログの更新頻度を出来るだけ上げてアドベントカレンダーに対抗する事を目標にしようかと思います。


さて、そんなこんなで本題です。

Androidでレイアウトを弄ってる際「こんな感じの色が良いなぁ」
とか思い浮かべるかと思います。

そして、16進数で色を作って行く訳ですがコレが何かと面倒で・・・
サイトのカラーコード表を見ながらああでもないこうでもないと・・・

って事で、何番煎じか分かりませんが纏めてみました。

参考サイトは原色大辞典さんです。

githubに載せてあるのでどぞです。
https://github.com/Shift-Kumagai/AndroidLayoutColorXML

2012年5月20日日曜日

【Android】Android標準レイアウトを変更してみる【レイアウト】

【ここの部分は読み飛ばしても大丈夫です】

お仕事でTabView使っていたのです。

TabViewって標準でテキストにアニメーションが入ってて、長すぎるテキスト
入れると、文字が小さくならずに、選択時にアニメーションで隠れた文字が
出てくるようになるんですよね。
その為、標準のプロパティの中にはテキストサイズ(Textsize)の変更が存在
していません。

そんな中で言われたのが・・・

お客様「アニメーション要らないからテキストサイズ小さくして」
私「(; ゚д゚)・・・はい。。。」

まぁ、Viewのxml手打ちすれば良いかとか思っていたのですが、現在のレイ
アウトに特に不満を持っているわけでも無さそうだったので、できる限りレイ
アウト弄りたくない!(メンドウだし)。。。
そう思って調べたらありました!



【やっと本題】
さて、今回はTabViewを例として挙げていますが、結構色んなレイアウト変更
することが出来るみたいです。

※それと、これ書きながらテストコード打っていたのですが、自宅のSDKのバー
ジョンが古いようで、会社の時とは挙動が違いました。今回の画像ではタブの
イメージとタブの文字が被ってしまっていますが、最新のSDKでは自動でイメー
ジのサイズが調整されたはずです。余裕あったら後で直します。。。

まずは普通に実装します。

TabTestActivity.java
import android.app.Activity;
import android.app.TabActivity;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

//継承はTabActivityなのをお忘れなく
public class TabTestActivity extends TabActivity{
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  //リソースフォルダ
  Resources res = getResources();

  //タブの本体作成
  TabHost tabHost = getTabHost();

  //多分タブ夫々の本体?
  TabHost.TabSpec spec;

  //Tab夫々を作っていきます。今回は3つ////////////////////

  //1個目
  spec = tabHost.newTabSpec("tab1")
    .setIndicator("Tab1test",
      res.getDrawable(R.drawable.ic_launcher))
      .setContent(R.id.Tab1);
  tabHost.addTab(spec);

  //2個目
  spec = tabHost.newTabSpec("tab2")
    .setIndicator("tab2test",
      res.getDrawable(R.drawable.ic_launcher))
      .setContent(R.id.Tab2);
  tabHost.addTab(spec);

  //3個目
  spec = tabHost.newTabSpec("tab3")
    .setIndicator("tab3testてすとてすと",
      res.getDrawable(R.drawable.ic_launcher))
      .setContent(R.id.Tab3);
  tabHost.addTab(spec);

  //Tabが呼び出された時、どこを起動画面にするか選択(0からだよ)
  tabHost.setCurrentTab(0);

  //////////////////////////////////////////////////////


 }
}
main.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <LinearLayout
                android:id="@+id/Tab1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="Tab1の表示" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/Tab2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="Tab2の表示" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/Tab3"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="Tab3の表示" />
            </LinearLayout>
        </FrameLayout>
    </LinearLayout>

</TabHost>




実装画面
※イメージとテキストの重なりは最新のSDKなら自動で修正してくれるはずです。

 さて、この時のTab3の文字が微妙に枠からはみ出しているのが確認頂けますでしょうか?
 これの修正やっていきます。
 残念ながらTabWidgetのプロパティにはテキストサイズの項目が無いようで、
android:textsize ="10sp"なんてのができません。 そこで、Android標準のレイアウトを変更
する事にします。




まず、style.xml作ります。


中身はこんな感じ

style.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <style name="MyTheme" parent="android:Theme">
        <item name="android:textViewStyle">@style/MyTextView</item>
    </style>

    <style name="MyTextView" parent="android:Widget.TextView">
        <item name="android:textSize">10sp</item>
    </style>

</resources>



この"Theme"ってのを使うと、アプリ内の特定の標準レイアウトだけを変更
できるらしいです。
今回はTabのtextSizeを"10sp"に変更してみます。


styleが書けたので、これをAndroidManifest.xmlに読み込ませます。


AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.kumagai.shift"

    android:versionCode="1"

    android:versionName="1.0" >



    <uses-sdk android:minSdkVersion="7" />



    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <activity

            android:name=".TabTestActivity"

            android:label="@string/app_name"

            android:theme="@style/MyTheme">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />



                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>



</manifest>
<activity>の部分にandroid:theme="@style/MyTheme"を追加しました。



これで起動すると・・・

この様になります。
Tabの文字が小さくなっているのが確認できますでしょうか?
Tab3の文字が見きれていたのが改善されました。

Activity全体に適応されるので下のLinerLayoutのTextViewでも文字が小さく
なってしまっていますが、こちらは個別に変更可能なため、適当に

<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Tab2の表示"
android:textSize="100sp" />



とでもやれば・・・



















でかくなります(笑


Themeで変更可能なものが結構御座います。
どこかに一覧みたいなのあったはずだけど、どこで見つけたか忘れてしまった。。。


参考サイト
  Y.A.M の 雑記帳 詰まった所があり探すと、必ずといって良い程解決策が載ってるサイト様
  Tech Booster ここもよく行き着きますねw





Androidのデザイン関連ですと、この辺りの書籍は目を通しておくと良いかも。。。

2012年2月19日日曜日

【Android】Eclipseの初期設定

Android開発の前にEclipseの初期設定

Eclipseは初期状態だと文字のエンコードが「MS932」(Shift-JIS)です。

この状態だとコード中に日本語が混じると正しく表示されなかったり、

ビルドできなくなるなどの問題が生じる可能性があります。

なので、取り敢えず「UTF-8」に変更しておきましょう。

Eclipseの「Window」→「Preference」、左側の「General」→「workspace」そこの下にある

「Text file encoding」を「Default」から「Other : UTF-8」に変更しましょう。


序にJavaコンパイラの文法チェックのレベルの変更も書いとく

AndoroidではJava1.5レベル以上の環境でのチェックが必要

初期設定のままだとJava1.4のハズ。なのでそれの変更

左側の「Java」→「Complier」その欄の「Compiler Compilance level」を1.6とか高い奴に設定

最後に「Applay」→「OK」。

やんなくても動いてたけど忘却録として一応書いとく。

2011年6月29日水曜日

Galaxy s2とWindowsを繋げてみる。。。

実機初めて触るので解説サイト見ながらやってみる事にする。。。
序にブログも書いてみちゃったりしてみる

解説してくれてるサイトを見てみると、SDKの中の「google-usb_driver」を使うらしい。。。











うん・・・無い・・・。。。

無い場合はADV ManagerからDLするらしい
よし!









うん・・・無い・・・。。。

ホントに無いのか???








ごめんなさい・・・入ってました・・・・

でもSDKの中に無いんだよなぁ・・・どこだろうとか思ってたら
ありました・・・\android-sdk\extras\googleに・・・
アップデートで場所変わったのかな?

まぁいいや・・・
次は・・・
接続するAndroidの実機のIDを調べるらしい。
なんか公式サイトにあったね。。。これかな?
英語でよく分からんので別サイトを参照する・・・orz

デバイスマネーャ開いて、Androidっぽい端末のプロパティっからIDを探る









これか!!

次に\android-sdk\extras\googleの「android_winusb.inf」を編集する。
Google.NTx86(32ビットWindows)又はGoogle.NTamd64(64ビットWindows)というセクションを探す。

自分は32bitなのでNTx86でした。。
ここにさっき調べたIDを適当に記述して保存








でもってやっとドライバのインストール










ドライバのディレクトリを指定してやって・・・












微妙に長いインストールの時間を経て・・・











できたーーーーーーーーーーーーー!!!
再起動すると・・・













わーい!ちゃんと認識されてる~~~


EclipseのDDMSでも確認












できてるね
カメラのマークのボタン押したらちゃんとキャプチャできた~~














よし・・・
なんかやろう