是否有可能在Chromebook上开发和调试Android应用程序?

时间:2016-11-07 03:01:36

标签: android chromebook crouton-os

我正在使用crouton在我的chromebook上创建一个Linux桌面。在这里,我安装了Android Studio并开始使用一个简单的Android应用程序。我可以构建一个apk,将其移动到Downloads文件夹,然后从linux翻转到ChromeOS并运行该应用程序。 (我使用APK安装程序 - 工作正常)。

我希望能够从我的应用程序中看到logcat(实际上,我希望看到在Android Studio中的模拟器中运行时获得的所有诊断信息 - 但是我会这样做满足于logcat)。

我读过有关使用adb的任何内容都希望您拥有Android Studio所在的开发计算机以及运行应用程序的目标计算机。使用crouton,linux桌面和ChromeOS在同一台机器上,因为它们共享相同的资源等,一次只能运行一台。 我尝试了几个应用程序,但没有人能够显示我在Chromebook上运行的应用程序的logcat - 他们甚至不知道它正在运行。有人知道如何查看这个特定设置的logcat吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,我已经找到了一种获取logcat的方法,并且正在解决这个问题......现在

在主要的Activity onCreate中调用此方法;

class ChocolateController extends Controller {
    /**
     * Finds and displays a Chocolate entity.
     *
     * @param Calendar $calendar
     * @param Box $box
     * @param Wrapper $wrapper
     * @param Chocolate $chocolate
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function showAction(Calendar $calendar=null, Box $box=null, Wrapper $wrapper=null, Chocolate $chocolate) {
        $deleteForm=$this->createDeleteForm($calendar, $box, $wrapper, $chocolate);

        return $this->render('AppBundle:chocolate:show.html.twig', array(
            'calendar'=>$calendar,
            'box'=>$box,
            'wrapper'=>$wrapper,
            'chocolate'=>$chocolate,
            'delete_form'=>$deleteForm->createView(),
        ));
    }

    /**
     * Displays a form to edit an existing Chocolate entity.
     *
     * @param Request $request
     * @param Calendar $calendar
     * @param Box $box
     * @param Wrapper $wrapper
     * @param Chocolate $chocolate
     *
     * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
     */
    public function editAction(Request $request, Calendar $calendar=null, Box $box=null, Wrapper $wrapper=null, Chocolate $chocolate) {
        $deleteForm=$this->createDeleteForm($calendar, $box, $wrapper, $chocolate);
        $editForm=$this->createForm('AppBundle\Form\ChocolateType', $chocolate);
        $editForm->handleRequest($request);

        if($editForm->isSubmitted() && $editForm->isValid()) {
            $em=$this->getDoctrine()
                     ->getManager();
            $em->persist($chocolate);
            $em->flush();
            if($box) {
                return $this->redirectToRoute('wrapper_box_chocolate_edit', array(
                    'idBox'=>$box->getIdBox(),
                    'idWrapper'=>$wrapper->getIdWrapper(),
                    'idChocolate'=>$chocolate->getIdChocolate()
                ));
            } else {
                return $this->redirectToRoute('calendar_chocolate_edit', array(
                    'idCalendar'=>$calendar->getIdCalendar(),
                    'idWrapper'=>$wrapper->getIdWrapper(),
                    'idChocolate'=>$chocolate->getIdChocolate()
                ));
            }
        }

        return $this->render('AppBundle:chocolate:edit.html.twig', array(
            'calendar'=>$calendar,
            'box'=>$box,
            'wrapper'=>$wrapper,
            'chocolate'=>$chocolate,
            'edit_form'=>$editForm->createView(),
            'delete_form'=>$deleteForm->createView(),
        ));
    }
}

在另一个Activity的onCreate中使用;

用logcat填充TextView
    public static void saveLogcatToFile(Context context) {
            File outputFile = new File(context.getFilesDir(), "logcat.txt");

            try {
                @SuppressWarnings("unused")
                Process process = Runtime.getRuntime().exec("logcat -df " + outputFile.getAbsolutePath());
            } catch (IOException e) {...

在卸载之前,日志会一直追加到每次运行(这会删除日志文件)。 我发现当我破坏某些东西并且我的应用程序在启动时死亡时它特别有用,因为我可以恢复到先前的提交并查看日志以查看发生了什么