Android 生命体征“不良行为”标志

Android Vitals “Bad Behaviour” Flags

Google Play 最近在 Google Play 控制台中发布了“Android Vitals”功能,他们可以借此显示有关已发布应用的分析信息。

Android Vitals 选项卡包含崩溃、ANR、多次崩溃、缓慢呈现、冻结帧等分析信息。它们还显示“不良行为”指标,通过这些指标可以将您的应用的分析与基准。如果您的应用被标记为不良行为标志,那么它可能会影响您的 rankings/downloads 等

是否有其他人在 google play 时在他们的应用程序中遇到不良行为标记? 自引入 Android Vitals 选项卡以来,是否还有其他人看到有机流量急剧下降? 考虑到我们的应用程序是使用 AS

开发的,有人对如何最好地解决这些“不良行为”标志有任何建议吗?

提前致谢

bad behav image

installs

java.lang.NullPointerException: 

  at com.mydemoapp.player.activity.Dashboard.subscribeActual (Dashboard.java:2033)

  at io.reactivex.Observable.subscribe (Observable.java:10179)

  at io.reactivex.internal.operators.observable.ObservableSubscribeOn.run (ObservableSubscribeOn.java:39)

  at io.reactivex.Scheduler.run (Scheduler.java:134)

  at io.reactivex.internal.schedulers.ScheduledRunnable.run (ScheduledRunnable.java:59)

  at io.reactivex.internal.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:51)

  at java.util.concurrent.FutureTask.run (FutureTask.java:237)

  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:272)

  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)

  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)

  at java.lang.Thread.run (Thread.java:761)

--

private Observable<ArrayList<HashMap<String, String>>> provideSongListOberservable() {
        return new Observable<ArrayList<HashMap<String, String>>>() {
            @Override
            protected void subscribeActual(Observer<? super ArrayList<HashMap<String, String>>> observer) {

                File home = new File(MEDIA_PATH);
                String[] values = getResources().getStringArray(R.array.array_songs);
                ArrayList<HashMap<String, String>> songsList = new ArrayList<>();

                if (home.listFiles(new FileExtensionFilter()).length > 0) {
                    for (File file : home.listFiles(new FileExtensionFilter())) {
                        try {
                            HashMap<String, String> song = new HashMap<>();
                            song.put(KEY_SONG_TITLE,
                                    values[Integer.parseInt(file.getName().split("_")[1].substring(0,
                                            (file.getName().split("_")[1].length() - 4))) - 1]);
                            song.put(KEY_SONG_PATH, file.getPath());

                            // Adding each song to SongList
                            songsList.add(song);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }

                observer.onNext(songsList);
            }
        };
    }

"App crashing" 不良行为意味着您的应用经常崩溃。

Google Play 已公开表示(例如 this talk)在决定如何在搜索结果中对哪些应用进行排序以及选择要推广哪些应用时,它将使用不良行为作为信号。

为了解决这个问题 - 让您的开发团队优先解决崩溃问题,而不仅仅是添加新功能。使用 Play 控制台中的崩溃报告找出应用中的错误并修复它们。