本篇文章给大家谈谈Android之在linux终端执行shell脚本直接打印当前运行app的日志,以及linuxshell打印命令的知识点,同时本文还将给你拓展ActiveJDBC的日志Logging
本篇文章给大家谈谈Android 之在 linux 终端执行 shell 脚本直接打印当前运行 app 的日志,以及linux shell打印命令的知识点,同时本文还将给你拓展ActiveJDBC 的日志 Logging、Android 在应用内获取 adb 的日志、Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示 Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示、Android.app Fragments 与 android.support.v4.app 使用 ViewPager?等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- Android 之在 linux 终端执行 shell 脚本直接打印当前运行 app 的日志(linux shell打印命令)
- ActiveJDBC 的日志 Logging
- Android 在应用内获取 adb 的日志
- Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示 Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示
- Android.app Fragments 与 android.support.v4.app 使用 ViewPager?
Android 之在 linux 终端执行 shell 脚本直接打印当前运行 app 的日志(linux shell打印命令)
1、问题
我们一般很多时候会需要在 ubuntu 终端上打印当前运行 app 的日志,我们一般常见的做法是
1)、获取包名
打开当前运行的 app, 然后输入如下命令,然后在第一行 TASK 后面的就可以看到包名
adb shell dumpsys activity top
2)、我们的终端安装了 pidcat.py 脚本,然后执行如下的命令就可以打印当前运行 app 的全日志,
pidcat.py packageName
3)、思考,为什么每次都需要这样重复的操作呢?一说到重复,我们应该立马想到是否可以用脚本解决重复操作
2、解决办法
通过执行脚本文件获取包名,然后再执行 pidcat.py packageName 命令
3、代码实现
1)、新建 pcat 文件
#!/bin/bash
dev="device"
devices=$(adb devices)
if [[ ${devices} == *$dev ]]
then
echo "手机已经连接好终端"
info=$(adb shell dumpsys activity top | awk -F " " ''/TASK/ {print $2}'')
echo "当前运行app的包名是:${info}"
pidcat.py --hw ${info}
else
echo "手机没有连接好终端"
fi
2)、把 pcat 文件复制到下面目录
/usr/local/bin/
4、测试结果
1)、打开手机 "游戏中心" 的 app
2)、在终端输入 pcat
3)、终端运行结果
*****~$ pcat
手机已经连接好终端
当前运行app的包名是:com.huawei.gamebox
Zygote D CtrlSocket libc.so ctrl_sockets_set_addr pfunc is not exist!
Process com.huawei.gamebox created for activity com.huawei.gamebox/.GameBoxActivity
PID: 29758 UID: GIDs:
ActivityThread D ActivityThread,attachApplication
HwCust D Create obj success use class android.content.res.HwCustHwResourcesImpl
AnalyticUtils D experience = 1
StoreApplication D create application.
HwPolicyFactory V : success to get AllImpl object and return....
HwWidgetFactory V : successes to get AllImpl object and return....
ActivityThread V ActivityThread,callActivityOnCreate
5、总结
重复的操作我们可以用脚本解决问题,提高开发效率,要记得用这个之前确保你的终端能运行 pidcat
ActiveJDBC 的日志 Logging
ActiveJDBC 使用 SLF4J 日志框架来记录操作日志。
如果你需要记录 ActiveJDBC 所有日志,可使用如下命令后来启动应用
java -Dactivejdbc.log com.acme.YourProgram
如果你只想记录所有的 SELECT 查询语句,则可以:
java -Dactivejdbc.log=select.* com.acme.YourProgram
你也可以在程序里修改日志的输出:
activejdbc.LogFilter.setLogExpression(...);
Android 在应用内获取 adb 的日志
方法就是通过系统调用 logcat 命令行工具来收集日志。
这里有一个简单的示例代码:
import java.io.IOException;
public class LogCollector {
private static final String CMD_CLEAR = "logcat -c";
private static final String CMD = "logcat -d -v tag -f ";
private final String _cmd;
public LogCollector(final String logSavePath) {
_cmd = CMD + logSavePath;
}
public void start() {
exec(CMD_CLEAR);
}
public void stop() {
exec(_cmd);
}
private void exec(final String cmd) {
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示 Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示
Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示
Android 实现不同 Launcher 桌面角标的坑 (Badge)
Android.app Fragments 与 android.support.v4.app 使用 ViewPager?
我有一个关于 Android 支持库、片段以及作为具体示例的ViewPager
类的问题。我的目的是创建一个与 Android 开发者网站(
http://developer.android.com/training/animation/screen-
slide.html或http://developer.android.com/)上提供的示例功能相似的应用程序培训/实施-
导航/lateral.html)。查看他们的代码,我注意到他们使用了该android.support.v4.app
库,根据我的研究,这是访问ViewPager
该类的唯一方法。
在我的情况下,我对向后兼容性不感兴趣。最低 API 级别为 14(冰淇淋三明治),构建目标为 4.2 Jelly
Bean。在最简单的形式中,我的应用程序的性能与我在 Android 开发网站上链接的第二个演示完全相同 - 只需在三个选项卡之间滑动,每个选项卡都有内容。
我读过的所有文章/帖子/答案似乎都非常支持 v4 支持库 。现在我的问题虽然啰嗦,但问题:
构建我的应用程序的最佳方式是什么 - 使用
android.support.v4.app
,从而使用 SupportFragments,或者使用提供的片段android.app
- 为什么?如果 Fragments from
android.app
是要走的路,那么最佳的方法是ViewPagers
什么?如果 SupportFragments 最适合这项任务,我估计它们具有与另一个相同的功能 - 那么将它们放在里面的目的是什么
android.app
?
希望有更清楚理解的人能给我一些澄清,因为我很困惑......
答案1
小编典典您可以将包中的ViewPager
本机片段与android.support.v13.appandroid.app
包中的适配器一起使用。您必须为此使用 v13 支持
jar。
有两个版本的适配器可以使用ViewPager
,v4
包中的那些用于支持片段,一个用于v13
原生片段。
现在有两个 Fragment 实现的原因是历史性的:android.app
包中的 Fragment 是在 Android 3
中仅针对平板电脑引入的,并且创建了支持库以将 Fragment 带到运行旧版本的手机上。在 Android 4 上,两者都有。
今天关于Android 之在 linux 终端执行 shell 脚本直接打印当前运行 app 的日志和linux shell打印命令的介绍到此结束,谢谢您的阅读,有关ActiveJDBC 的日志 Logging、Android 在应用内获取 adb 的日志、Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示 Android 系统 应用图标显示未读消息数 (BadgeNumber) 桌面 app 图标的角标显示、Android.app Fragments 与 android.support.v4.app 使用 ViewPager?等更多相关知识的信息可以在本站进行查询。
本文标签: