1. android如何过滤http请求
Android客户端捕获http请求包的方法
对于Web测试,我们可以很容易的抓取到相关的http请求包,不用什么专业软件,甚至浏览器都能帮我们完成这个功能,拿到需要的http请求连接 。
http连接对于测试同学来说, 不论做功能、性能或是安全,都是非常重要的, 他过滤了前台的因素,让测试同学直接能对后台进行交互。
以上是http连接的重要性,基本等于废话,下面是正题。
客户端安全测试,同样需要拿到http的请求包,由于客户端的前段限制绕过比较麻烦,那么在做安全测试的过程中,直接拿到http的请求包显得更外重要。
有如下方法可以拿到请求的http包:
1、在不配置代理的情况下,对Android客户端(模拟器)的数据我们可以使用wireshark或者etherpeek等网络层抓包软件抓取,模拟器本身的数据交互是通过电脑主机的网卡进行的,所以我们通过抓包软件抓取主机网卡的数据包,经过过滤,便可得到模拟器客户端中的数据包,类似这样:
访问之后,通过wireshark过滤http请求,便可找到我们刚刚发送的请求。
当然,这是种比较麻烦的方法,不过可以更确切的看到网络包发送的内容。
另一种办法是对模拟器配置代理,让所有请求包可以通过外部主机的七层抓包软件,例如fiddler ,burpsuite等所捕获到,配置代理需要先做一次设置:类似这样:
进 入“设置”选项之后,按照图示设置
这里proxy 设置为10.0.2.2是android模拟器对外部主机地址的硬编码,端口设为8888是外部主机fiddler 的监听地址,当然,如果是burpsuite 可以设置为8080。
2. 安卓手机如何过滤/屏蔽无用的通知/推送
进入手机设置>通知设置,屏蔽相关应用通知
3. Android分享中,如何过滤指定的应用,并且对不
分享时是通过Intent的Action来过虑的
就像android选择图片或者选择浏览器
都会寻问你要启动哪个应用程序,实际上就是在android的清单文件中注册了Action
多个程序都注册了相同的Action startActivity的时候,就会寻问
4. android studio开发应用分享功能怎么实现
1、项目组织结构区,用于浏览项目文件,默认Project以Android组织方式展示。
2、设计区,默认在打开布局文件时为设计模式,可直接拖动控件到界面上实现所见即所得,下方的Design和Text就是代码和设计模式的切换按钮,切换至TEXT时,左侧为代码编辑区,右侧为所见即所得的预览。
下图为切换至TEXT的界面
而我们常用的代码编辑时的界面就很简单,左边项目树,右侧代码编辑区,下图为代码编辑界面:
3、组件树,用于展示整个页面布局的层级关系。
4、属性区,显示选中控件的可编辑属性(仅在设计模式可见)。
5、工具栏,提供常用操作按钮
二、左侧Structure、Project、Captures面板
1、Structure面板
切换到Structure面板, Structure用于显示当前活动文件的结构,不仅仅支持 java 文件,同时支持 Xml 文件、 .properties 配置文件等多种类型的文件。在图中1位置可以设置过滤要显示的内容,如是否显示属性、内部匿
5. android怎么把其他app的内容分享到自己的app里
很多时候我们的应用在使用微信分享内容之后,希望其他用户点击该分享内容能够跳转到我们的App,以实现闭环,这样的分享才是最有价值的。这种需求涉及到不同应用之间的交互,虽然微信提供了分享SDK,但仍然有不少限制,现在总结两种在Android平台上初步认为可行的方案:
1.分享网页,从分享的网页跳转回原App。
2.分享WXAppExtendObject类型的数据,且只能分享给好友,好友从聊天列表点击收到的分享内容可以直接跳转第三方App(前提是好友手机上已经安装了该App)。下面来详细说明两个方案,由于是在项目中实测的,为了隐私及行文方便,假设我们的应用的名字为MyApp,效果截图也就不再展示。
方案一:
从WebView(该WebView从属于另一个App,并非我们自己的App)跳转到MyApp的某个界面(这里以跳转到MyApp的Acticity A为例)。具体的实现逻辑如下:
(1)该WebView显示的网页内容只是一个超链接,自定义了一个scheme=myapp://,后边可以附加一些参数,如果需要从网页向App传值的话。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>This is title</title>
</head>
<body>
<a href=’myapp://id=909624′>Jump to MyApp</a>
</body>
</html>
该网页在WebView打开后就是一个简单的超链接,截图不再附。
(2)MyApp中的Activity A需要配置特定的infliter,如下:
<activity
<intent-filter>
<data android:scheme="myapp" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
(3)当在WebView上点击上述自定义的超链接时就可以打开MyApp的A界面,所传递的参数也可以在所跳转到的Activity中获取,方法如下:
getIntent().getScheme();//获得Scheme名称
getIntent().getDataString();//获得Uri全部路径,根据自定义的格式解析字符串即可获取我们上面附加的参数。可行的实施方案:
MyApp中调用微信分享分享网页内容,只需要在网页中嵌入跟Android客户端约定好的超链接协议scheme,那么点击时就可以跳转到MyApp。
问题1:如果用户安装了MyApp,就可以点击网页跳转,如果没有安装MyApp的话,WebView就会提示找不到该页面。制作网页时可以在网页中做检测,没安装MyApp的话,页面就重定向到应用的下载页面。
问题2:在普通App的WebView中和浏览器中上述机制是可以的,但是在微信的WebView是不可以点击直接跳转我们的应用的,可能是微信做了某些过滤,且仅仅支持跟微信有深度合作的应用的跳转,如大众点评是可以的。针对这种情况,我们可以引导用户使用浏览器打开所分享的网页,然后点击就可以跳转应用了。方案二:
使用微信SDK分享WXAppExtendObject数据给好友,好友点击跳转MyApp的某个页面(需要在分享时传递构造跳转Intent的参数)。
1.该类型的分享(具体请参考微信分享SDK)可以带几个参数,参数中必须附带一些构造跳转Intent的数据。
2.好友点击分享的内容,回调IWXAPIEventHandler接口的类的onReq方法,具体为
ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:这种情况才会调用,此时可以取出分享时附带在参数中的一些数据,构造一个跳转Intent,调用startActivity(intent) 来打开MyApp。
由于是项目实测,这种实现方式的截图也就不传了。
问题1:该分享方式只能分享给好友,不能分享到朋友圈。
问题2:如果好友没安装MyApp,点击微信中好友分享过来的消息后无反应,无法提醒“未安装MyApp,请下载”,因为这些逻辑要实现的话本身就是在MyApp里面写的,原本没装的话根本无法检测。
问题3:WXAppExtendObject类型的分享,数据有大小限制,
extInfo(String)限制2KB;
fileData(byte[])供第三方使用的文件二进制数据,最大10M;
filePath:(String)Local directory of the file provided for applications,本身长度最大10KB,文件大小同上,不超过10M。以上就是Android平台好友点击微信分享的内容后跳转来源App的两种实现方案,各有优点和局限性,请根据自身业务需求选择合适的分享方式,由于未能附截图说明,如有哪里表述不清楚的,欢迎留言讨论。
6. 如何在android里创建一个文件过滤器
运行Android项目,开发工具是不会自动创建过滤器的,是需要开发者手动创建过滤器,在windows7操作系统Android studio按照如下步骤创建过滤器:
1、首先创建一个Android项目,如下图:
2、点击下方小机器人图标之后会一直显示模拟器或真机正在进行的操作,当前为没有过滤,如下图:
3、点击这个小界面右上方,如下图:
4、选择最后一个选项,如下图:
5、设置过滤:
7. 安卓手机分享一个程序,之前有许多方法分享,但点了始终后,只执行一种方式,如何重设
Android 5.0 Lollipop虽然带来了许多重要的升级和优化,但和所有操作系统一样,它也难免会带着一些缺陷和漏洞。最近,科技网站Digital Trends就汇总了Android 5.0身上6个最为烦人的问题,以及相应的解决办法。 应用崩溃、启动器重绘、延迟 安装了Android 5.0系统的设备有一定几率会出现内存泄露的问题,且症状都千奇百怪。有时候后台应用会自动关闭并重启;有时候启动器会在返回主屏幕后重绘,且耗时过长;还有时候多任务和最近应用菜单会出现延迟,浏览器也会重载标签页;还有的时候,应用会崩溃并强行关闭,特别是音频串流应用。这些问题虽然各不相同(在低配置机型上尤为严重),不过它们看起来都是同一个bug所造成的。 变通办法 重启设备可暂时解决问题,但使用3-4天后问题会再度出现。 关闭Google即时有可能会改善问题(进入谷歌设置,点击搜索和即时>即时贴,然后将其关闭) 可能的解决方法 删除Google应用的搜索数据可能会解决该问题。具体方法:进入设置>应用程序>全部,找到Google应用,点击管理空间,然后勾选清除所有数据。执行该操作之后,Google搜索、Google即时、Google即时启动器的数据会被清空,你需要重新进行设置。 执行恢复出厂化设置,但在此之前你应该将所有数据进行备份。具体方法:进入设置>备份与重置>重设出厂数据,然后选择底部的重置手机/平板。注意检查软件升级,谷歌目前已经修复了这个问题,但我们还需等待新的软件升级。 耗电过快 大量Android 5.0用户称自己设备的耗电速度过快。原版Lollipop当中的确存在Wi-Fi引发的耗电问题,但谷歌已经在Android 5.0.1当中进行了修复。Android 5.0本该提升设备的续航,因此如果你的设备在升级之后依然耗电太快,下面这些方法或许可以解决问题。 变通办法 进入设置>电池,然后查看是否有耗电量不正常的应用。如果有,进入设置选项查看是否可以进行调整,并确保应用已升级最新版。如果方法无效,你可以考虑将其卸载。 可能的解决办法 尝试将手机中所有的应用都升级至最新版本。耗电过快的问题一般都是某款应用所引起的,你可以尝试逐一卸载并查看效果,或者是执行恢复出厂化设置,然后有选择地重新安装。 无法播放视频 不少用户反映,自己的设备无法正常使用视频串流服务。部分用户只是无法使用某些视频服务,也有设备无法进行任何视频串流。甚至还有用户称自己的设备无法拍摄视频。 变通办法 重启或许会解决这个问题,但这只是暂时性的。尝试清空问题应用的缓存。具体方法:进入设置>应用程序>全部,选择问题应用,然后点击清除缓存。 清除整个缓存分区可能会解决该问题,但你首先需要知道如何进入Recovery模式。遗憾的是,这个方法也无法永久性地解决问题。 可能的解决办法 进入设置>关于手机/平板,然后连续点击版本号多次。这会解锁系统的开发人员选项。进入之后,在媒体一栏当中禁用“使用NuPlayer(实验)”选项,然后重启设备。 Wi-Fi无法连接或保持连接 在升级到Android 5.0之后,部分设备的Wi-Fi也出现了问题,要么无法连接Wi-Fi,要么频繁断开连接。这是移动设备普遍存在的问题,可以尝试的解决方法如下。 可能的解决办法 最基本的办法:重启路由器和移动设备。 进入设置>Wi-Fi,长按你的网络并点击忘记网络,然后重新进行连接。使用浏览器进入路由器设置页面,将网络切换至不那么常用(拥挤)的频段。 确保路由器的MAC地址过滤处于关闭状态,或在其中添加设备的MAC地址。你可以进入设置>关于手机/平板>状态或设置>Wi-Fi,然后点击右上角的设置按钮,并选择高级。在这里,你就能查看到设备的MAC地址。 确保路由器固件处于最新状态。 通话无声音 不少用户在打电话时都碰到了无法听到对方,或对方无法听到自己的问题。 变通办法 重启手机可暂时解决该问题。 使用蓝牙耳机。甚至先使用蓝牙耳机,然后切换回来也有可能解决该问题。 可能的解决办法 你可以尝试在关机后将SIM卡取出并再次插入,然后开机进入设置>更多>移动网络>接入点名称,点击右上角的菜单按钮,然后点击重设到默认。 蓝牙无法正常工作 蓝牙无法正常工作也是Android 5.0当中常出现的一个问题。有的用户无法配对,有的在建立连接之后依然无法正常工作,还有的会自动断开连接。 可能的解决办法 首先请确保配对方式正确。某些蓝牙配件需要在按下机身按键之后才会进入配对模式。 删除旧的蓝牙配置文件。 进入设置>蓝牙,点击旁边的设置图标,然后点击取消配对。重启后尝试再次连接。 进入设置>应用>全部>蓝牙分享,然后清除数据和缓存,重启手机。 本文来自于【系统之家】
8. android 打包怎么样过滤掉第三方jar
另一个坑
遇到这个问题是本能的想到直接在app目录下的proguard-rules.pro(或者proguard-rules.txt)混淆规则文件直接-libraryjars libs/xx.jar避免混淆。但是却引出了另一个错误:
Error:Execution failed for task ‘:app:proguardRelease’.
java.io.IOException: The same input jar [E:\myproject\app\libs\XX.jar] is specified twice.
也就是说混淆规则文件中,我们指定了2次
解决方法
打开app目录下的lib文件夹,将各第三方jar下的包名在proguard-rules.pro 文件中过滤。
code:
-keep class com..** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
-keep class com.google.gson.**{*;}
-keep class com.android.volley.**{*;}1234
上面的代码以 [-keep class com..* { ; }**] 为例,意思是不混淆com.包下的各个类及类里面的所以域和方法。把上面的包名换成自己想要忽略的jar下面暴露的包名即可。
9. android代码使用SimpleAdapter的filter方法进行过滤问题。
我不知道你的问题在哪。源码有限。这种情况你截图也许能发所有源码的信息。
我自己写了方法。能实现数据的过滤。
package com.example.simpleadapterfilter_08_16;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
List<String> listString;
ArrayAdapter arrayAdapter;
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listString=new ArrayList<String>();
listString.add("SOLAR EAST INC");
listString.add("BUTSTRI");
listString.add("张三");
listString.add("湖北 湖南");
arrayAdapter=new ArrayAdapter<String>(this,R.layout.textview_source, listString);
listview=(ListView) findViewById(R.id.listView1);
// 这句话是重点,可以对内容进行过滤。
arrayAdapter.getFilter().filter("SOLAR EAST INC");
listview.setAdapter(arrayAdapter);
}
}