这个h5页面是什么么APP

如何知道一个App的包名呢?它的启动页的Activity又是什么呢?
如何知道一个App的包名呢?它的启动页的Activity又是什么呢?
包名(Package name)在中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。
例如我可以自己编译生成一个App也叫&微信&,但是我App的包名不能为com.tencent.mm(微信的包名为这个),如果我指定的包名如果也和微信一致了,那么我的手机上只允许安装这两个App中的其中一个。说到这很多人就会有疑问,如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?android中为了防止这样,还做了一个叫签名的东西,微信的签名一般我们是没有的,所以就可以通过签名来标识出这款App到底是谁的了,有兴趣了可以了解下签名,这里就不再赘述了。
一般要知道一个应用的包名的需求来源都是需要跑一个monkey命令的时候,还记得吗monkey用法?(monkey的文章)monkey的命令中就是需要指定包名的。下面我们就介绍几种查看包名的方法:
一、看源代码
一般我们测试的App都是自己公司的App,因此当有源代码的时候,我们就可以非常容易的知道它的包名。找到工程目录下的 &AndroidManifest.xml& 的文件,打开后:
    我们找到package这一项查看即可。
  二、查看手机系统设置
    我这里介绍谷歌原生系统,其他的一些小米、魅族等自己定制后的系统的查看方法也大同小异。
    操作步骤:&设置& -& &应用&-& &正在运行&(这一步需要注意)-& 选择要查看的应用。这个时候就能看到了(如下图)
  三、查看 /data/data/ 目录
    当我们安装一款应用的时候,系统就会在/data/data/ 目录下建一个目录,并且文件名就是当前这个应用的包名,我们看一下我手机里这个目录下都有些什么文件吧:
    如果你知道你要查看的App包名中的一个关键词的话,会更快的找到你应用的包名,否则建议使用其他方法。此方法手机需要root。
  四、GT
    GT的界面中自带了这个功能,从应用宝上下载GT,然后选择一个被测应用,就可以看到了。(如下图)
启动页Activity
  简单的来说Activity指的就是App中我们看到的页面,一个页面就是一个Activity,通常第一页启动起来的页面我们就称之为 &启动页Activity&。
  我们在做自动化测试中,通常第一步都是启动被测应用,例如之前介绍的Monkeyrunner、Uiautomator都是这样的,而启动的方法就是利用 &包名/启动页的Activity&,因此我们在测试的过程中通常需要知道这个Activity的名称。下面我就介绍几种查看启动页Activity的方法。
  一、看源代码
    同样在源代码中我们可以直接找到启动页的Activity的名称。 这里需要找工程目录下的 &AndroidManifest.xml&包含 &category的值为android.intent.category.LAUNCHER& 的Activity就是我们要找的:
    当我们知道启动页Activity名之后,就可以直接输入& adb shell am start com.bryan.testbattery/com.bryan.testbattery.activity.MainActivity& 就可以拉起应用了。
  二、Logcat
    关闭App,打开LogCat,然后启动你的App,这个时候仔细看log日志,一般tag为ActivityManager的会记录下这么一段log,而这里面就记录了启动页的Activity,如下图:
  三、dump package 包名
    使用命令查看后,同样是找到包含&category.LAUNCHER& 字样的Activity即可
  四、Monkey
    Monkey可以设置日志的详细程度,当我们指定为 -VVV 的时候,并且指定模拟随机事件为一次,即可查看:
  五、Android程序
    如果你愿意做一个一劳永逸的事情,我建议一写一个App,根据一个包名来获得启动页的Activity,主要依靠PackageManager 这个类,下面是我实现的代码。
/** 通过包名去启动一个Activity*/
void openApp( String packageName) {
// TODO 把应用杀掉然后再启动,保证进入的是第一个页面
PackageInfo pi =
pi = mainContext.getApplicationContext().getPackageManager().getPackageInfo(packageName, 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
PackageManager pManager = mainContext.getApplicationContext().getPackageManager();
List apps = pManager.queryIntentActivities(resolveIntent,
ResolveInfo ri = apps.iterator().next();
if (ri != null) {
String startappName = ri.activityInfo.packageN
String className = ri.activityInfo.
System.out.println( &启动的activity是: & + startappName+&:&+className, CommonVar.LOG_SHOW);
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName cn = new ComponentName(startappName, className);
intent.setComponent(cn);
mainContext.getApplicationContext().startActivity(intent);
    这段代码是我的性能测试工具小松鼠在指定的被测App后,将被测App拉起做性能测试用的,大家可以参考。什么是APP的一级界面和二级界面?
UI设计者 – 一个免费自学UI设计APP
& 正文未分类
什么是APP的一级界面和二级界面?
发表于: &·
·& 7,174 views &·&
最简单的判定方式:需要按返回键 返回的都叫上一界面的二级界面。
程序主界面叫一级,譬如说微信点进去首先看到的是四个Tab,所以是一级,且四个Tab不是同过返回键来组织的,所以它们是同级。
(反例 支付宝 ,虽然也是四个Tab 但是其他三个Tab是可以通过 返回键返回到主界面,我觉得这就不是同级了,当然这个仁者见仁智者见智)
Android有回退栈,不管是Activity,还是Fragment,位于栈底叫一级,以此类推…
对Android来说,界面切换大部分都是两种:
1. 从一个Activity切换到另一个Activity
2. 从一个Fragment切换到另一个Fragment
凡是涉及到第一种切换的,一般都是一级界面切换到二级界面,或者二级界面切换到三级界面…或者切换到别的逻辑
涉及到第二种的,要看切换的两个fragment的关系,1. 如果两个Fragment平级,那么一般都是同一个级别的界面,
2. 如果是一对多的话,那么基本是一级界面跳转二级界面(或者依此类推)
1、以微信为例,微信、通讯录、发现、我都是一级页面,微信页面中的,订阅号 是二级页面,通讯录中的 添加朋友 也是二级页面,发现中的 朋友圈、附近的人 等也是二级页面
2、不同的tab对应的页面算是一级的,比如说 微信 页面 和 通讯录 页面
3、Action bar 下面的滚动标签也都算是平级的,比如说 豌豆荚的 应用、游戏、分类 都是同级页面
本文链接: http://www.shui-mai.com/shenmeshiappdeyijijiemianheerjijiemian/
同学自发组织群
Copyright&2016&&& 京ICP备号 |在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在打开一个app页面时,可能由于网速原因加载较慢,然后发现加载前的页面如下
加载完成后显示的内容基本就是按这个格局填充的,我猜想是静态页面和数据分离,先加载静态资源,然后再填充数据。在前端以及一些移动的APP都发现过,请问这是通过什么技术或者框架实现的,对前端了解比较少,不太懂,有点好奇。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这跟框架什么的关系不大,就是提前写一个样子在那里。等数据加载完之后,再把这里替换成渲染后的结果就可以了。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。这是什么软件界面?_百度知道
这是什么软件界面?
我有更好的答案
C语言的骗译器,应该是Tc
采纳率:36%
xp系统任务启动器
是什么程序吧
为您推荐:
其他类似问题
您可能关注的内容
作文的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 页面剪切快捷键是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信