Androidで現在起動中のActivityを知る方法

Posted on 水 08 7月 2020 in Android • Tagged with Android, debug

Android開発にて Activity, Fragment での画面遷移が入り乱れる実装をしていると、現在動かしている画面のActivityが何なのか知りたくなることがある。

昔の LayoutInspector や adb でも調べることができるけど、ログに出力する方法を書き残す。

ActivityLifecycleCallbacks を使って、activityがアクティブになった段階でログを出力すれば良い。

class MainApplication : Application() {

    private val activityLifecycleCallbacks = object : ActivityLifecycleCallbacks {

        override fun onActivityCreated(activity: Activity, bundle: Bundle?) {}

        override fun onActivityStarted(activity: Activity) {}

        override fun onActivityResumed(activity: Activity) {
            Timber.i("current activity is $activity")
        }

        override fun onActivityPaused(activity: Activity …

Continue reading

Gradleで管理されたAndroidProjectのEspressoテストをGenymotionを使ってjenkinsでぐるぐる回すまで(長い)

Posted on 木 10 4月 2014 in Android • Tagged with pelican, python

image

Gradleで管理されたAndroidプロジェクトをJenkinsで動かすまで苦しんだのでまとめます。

環境

  • MacOS 10.8.5
  • Java 1.7
  • Gradle 1.11
  • Android Studio 0.5.3
  • Espresso 1.1
  • Jenkins 1.5558
  • git plugin
  • gradle plugin

前提

Android StudioでEspressoのテストが

./gradlew connectedAndroidTest

で動いてるものとします。

諦めたこと

Android Emulator Plugin は諦めました。 なぜか以下のメッセージを出して途中で止まります。

android completed with result NOT_BUILT

動くこともある。動かないこともある。不安定過ぎるのでエミュレーターを断念。

Genymotionで代用

エミュレーターをGenymotionに置き換えました。 以下Genymotionをjenkinsで呼び出す流れ …


Continue reading

MapFragmentをTabの要素として表示したい

Posted on 木 14 2月 2013 in Android

しかだよ。 MapFragmentをTabの一つとして表示したいんだけど、色々問題が出てきつつ解決できたのでメモ。

前提条件

  • Android 4.x
  • TabはActionBarを使用
  • Mapはgoogle-play-servicesを使用

とりあえずActionBarにタブを設定するソースコードはこんな感じ。

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

mActionBar = getActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
TabListener tabListener = new ActionBar.TabListener() {
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        if (tab.getText().equals("Map")) {
            if (mMapFragment == null …

Continue reading