易语言文件夹加密源码打开之后是第二张图,没打开是第一张图,怎么在Android源码中修改这个bug

淘宝应用是如何干预 Android 的默认应用设置的?
迄今为止装过的app没有上千也有几百,就发现淘宝这么做了,能做到这个。PS:路人补充,看到大家不太熟悉这个场景,因为我也一直被这个问题困扰,我试着描述一下,希望能有一个较好的解决方案。大概是这样的,如果在手机上打开一个链接,一般就会调用浏览器来打开,如果手机上装有多个浏览器,就会询问使用哪一个浏览器。重点是在选择浏览器的同时有两个选项,“仅此一次”或者“始终”。正常情况下,如果选择“始终”,下次再打开此类链接就不会再询问了。类似于PC上设置的默认程序这个功能。问题在于,如果你安装有淘宝这个App,上面你选择“始终”,下次还会询问。就是说淘宝App干扰了系统设置默认程序的功能。卸载淘宝则故障现象消除。不仅仅是浏览器设置问题,所有设置默认程序的地方都会影响,比如图片查看器,音乐播放器,知乎,youtube等等。说了这么多,其实就是淘宝App会干扰系统默认程序设置这个功能,因未知原因使其失效。Nexus5在4.4.4和5.0.1下均是这样,现在只能把淘宝冻结掉,尽量用网页版。
按投票排序
首先说一下用户自己可以操作的解决方案
在没有安装淘宝的情况下,选择好默认浏览器,然后再安装淘宝,之后此问题不会出现(我在4款不同的设备上试验过,同时查看过相关代码,都是如此)。其次知友城小帅的回答是有误的。android权限“修改系统设置”对应的是修改android system数据库的权限。而此问题里面产生的原因android system数据库无关,所以即使禁了淘宝的这条权限,也是没有用的,还可能引起其他问题。再次,这个真不是阿里发现了什么黑科技然后作恶,这个是android系统原生的bug,就是Google自己搞出来的,阿里是无意中触发了这个bug,并且此bug对它毫无益处。但是反过来说,如果这个bug存在了很长时间了,并且有很多用户反馈,而阿里又没有对此进行处理,这个的确不是很恰当。正文:以下的主要结果都是在中国移动m812手机上测试的,然后详细的debug流程就不写了,估计大家基本都不感兴趣,所有就直接写结果,然后具体是怎么引起的就不详细说了,对详细流程感兴趣的知友可以给我留言。1 在我debug的过程中,只发现浏览器有此问题,网友补充的其他问题没有出现。2 淘宝apk做了什么导致出现了这个问题。按照惯例,反编译一下淘宝的android客户端,打开它的AndroidManifest.xml文件,我们看到以下一个activity,"com.taobao.browser.BrowserActivity(每个activity对应一个界面)这个activity对应淘宝自己的一个浏览器界面,我们来看看它的intent-filter,里面有4行代码与此相关。&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
第一行,是设置它的优先级,一般来说,默认的优先级是0,淘宝把这个intent-filter设置为-1,估计是不想让它自己的浏览器出现在选择程序界面。如果我们只去掉这一属性,此问题描述的bug就不存在了,但是淘宝的浏览器就会出现在选择程序界面。
这个估计不是淘宝想要的,所以我们再来看看后面三行。
这三行是andoroid官方定义的一些配置,此配置可用于隐式启动一个可以处理http相关内容的activity(一般就是打开这个网址)。
所以如果我是淘宝的开发人员,想在解决此bug的情况下,又不让淘宝的浏览器界面暴露给用户选择,我就可以把android官方定义的category和action换成自定义的,使用的时候也使用自定义的配置,同时保留android:priority="-1"选项然后就可以了。&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
android:name="com.taobao.browser.BrowserActivity"
android:allowTaskReparenting="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Theme.NoBackgroundAndTitle"
android:windowSoftInputMode="adjustResize|stateHidden" &
&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&category android:name="android.intent.category.BROWSABLE" /&
&category android:name="com.taobao.intent.category.HYBRID_UI" /&
&data android:scheme="http" /&
&data android:scheme="https" /&
&data android:scheme="taobao" /&
&/intent-filter&
&!-- 其他与此问题无关的intent-filter被我忽略掉了 --&
&/activity&
3 我自己写一个应用,可以搞出这个问题吗?
可以,在任意一个应用的任意一个activity下面添加以下信息就可以了,其中category项可以省略(因为本身就是defualt(缺省))。&intent-filter android:priority="-1" &
&category android:name="android.intent.category.DEFAULT" /&
&action android:name="android.intent.action.VIEW" /&
&data android:scheme="http" /&
&/intent-filter&
4 与默认应用相关的配置文件是“/data/system/users/0/package-restrictions.xml”,里面有preferred-activities的相关内容,对应的就是默认应用,此文件一般用户是看不到的。
梳理一下此问题的出现过程。
4.1,手机里面有安装多个浏览器,同时目前没有配置默认浏览器。
4.2,安装淘宝,然后从其他地方(比如短信)打开一个网址,选中任意一个浏览器(比如chrome),然后点击always。
这个时候package-restrictions.xml文件里面会增加下面的信息,同时,在下一次弹出浏览器选择提示界面之前,always一直是true,错误是发生在浏览器选择界面的。&item name="com.android.chrome/com.google.android.apps.chrome.Main" match="200000" always="true" set="3"&
&set name="com.android.browser/.BrowserActivity" /&
&set name="com.android.chrome/com.google.android.apps.chrome.Main" /&
&set name="com.taobao.taobao/com.taobao.browser.BrowserActivity" /&
&action name="android.intent.action.VIEW" /&
&cat name="android.intent.category.DEFAULT" /&
&scheme name="http" /&
4.3,再次从短信中打开一个网址,此时淘宝的priority="-1"触发了系统的一个bug,内容被改为&item name="com.android.chrome/com.google.android.apps.chrome.Main" match="200000" always="false" set="0"&
&action name="android.intent.action.VIEW" /&
&cat name="android.intent.category.DEFAULT" /&
&scheme name="http" /&
5 怎么修改这个bug
5.1 去阿里相关部门投诉,并把第二段的关于问题是怎么出现的内容发过去,不过如果其他应用有这个问题,那就没办法了。
以下是彻底修正的方法:
5.2 最好的方案是给Google提bug,Google来改,因为根据知友的反馈,在目前最新的android5.0.1上也是有此问题的,而其他人是没有权限提交这个代码的。
5.3 找厂商投诉,让厂商修改。
5.4 对于有Nexus手机的知友,同时对android源码又懂一点,可以自己下载android源码,自己修改然后刷机。
与此bug相关的log,把这个log给Google或者厂商,并说明详细情况,这段log对手机厂商足够了。I/PackageManager( 1117): Result set changed, dropping preferred activity for Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] dat=/} type null
####以下是写的,是为了和题主确认具体复现场景####题主你好,关于“Android装了淘宝app之后,为啥能影响到系统默认打开设置?”,能否说一下操作的流程,然后淘宝具体是怎么影响的,效果是什么,然后我可以根据这个具体的行为去分析一下。
关闭淘宝的一个权限“修改系统设置”就可以了【更新】 修改系统设置对应的是修改android system数据库的权限,此问题的产生和这个是没有关系的,默认应用的选择功能没有开发给第三方应用,这个问题是android系统本身的一个bug。多谢知友指出,不知道怎么艾特人耶。去我的评论区看就好了不好意思,误导人了哈(≧▽≦)
intent-filter
上面各位都说了很多,但是解决方案目前都失效了我这里提供一个解决方案经过测试,淘宝全球这个APP不会影响默认设置,而且广告较少,常用功能都有。其实就是淘宝国际版,良心APP,推荐大家使用
其实会影响这点的不止淘宝 在系统中似乎有这么一个机制,软件安装时会声明“格式为xxx的链接可以由我打开”(比如知乎的app可以声明 在系统中似乎有这么一个机制,软件安装时会声明“格式为xxx的链接可以由我打开”(比如知乎的app可以声明)这样系统在需要打开某个格式符合的链接时会把这个软件放入备选列表中。这只是个人臆想,并不一定是客观事实只需一步,快速开始
只需一步, 快速开始
后使用快捷导航没有帐号?
总共730条微博动态微博: 27&分钟前&: 27&分钟前&: 昨天&15:56&: 前天&09:09&: 5&天前&:
查看: 92766|回复: 10
积分威望金钱
在Android里可以逐帧的播放图片,然后产生一种动态的效果,准备好几张连续的图片,然后在于源程序res文件夹下建立anim文件夹,然后新建一个XMLXML代码如下:&?xml version=&1.0& encoding=&utf-8&?&&&
&animation-list xmlns:android=&/apk/res/android&& &
android:oneshot=&true&&& &
&item android:drawable=&@drawable/c1& android:duration=&200& /&& &
&item android:drawable=&@drawable/c2& android:duration=&200& /&& &
&item android:drawable=&@drawable/c3& android:duration=&200& /&&&
&item android:drawable=&@drawable/c4& android:duration=&200& /&&&
&item android:drawable=&@drawable/c5& android:duration=&200& /&&&
&item android:drawable=&@drawable/c6& android:duration=&200& /&&&
&/animation-list&&&复制代码其中c1,c2,c3,c4,c5,c6是加入的图片的名称。在窗体里面放置一个ImageView控件,并在代码中编写:_imageView1 =(ImageView)findViewById(R.id.imageView1);//放置的ImageView控件//设置背景& &
_imageView1.setBackgroundResource(R.anim.animation_list);//其中R.anim.animation_list就是上一步准备的动画描述文件的资源名& &
//获得动画对象& &
_animaition = (AnimationDrawable)_imageView1.getBackground();&&
最后,就可以启动动画了,代码如下:&&
//是否仅仅启动一次?& &
_animaition.setOneShot(false);&&
if(_animaition.isRunning())//是否正在运行?& &
{&&
_animaition.stop();//停止& &
}&&
_animaition.start();//启动&&复制代码
&& i am coming
积分威望金钱
中级会员, 积分 733, 距离下一级还需 67 积分
中级会员, 积分 733, 距离下一级还需 67 积分
不错 支持一个了
积分威望金钱
高级会员, 积分 2955, 距离下一级还需 45 积分
高级会员, 积分 2955, 距离下一级还需 45 积分
小白一个 顶一下
积分威望金钱
高级会员, 积分 2957, 距离下一级还需 43 积分
高级会员, 积分 2957, 距离下一级还需 43 积分
积分威望金钱
LZ敢整点更有创意的不?兄弟们等着围观捏~
积分威望金钱
积分威望金钱
中级会员, 积分 687, 距离下一级还需 113 积分
中级会员, 积分 687, 距离下一级还需 113 积分
不错 支持下
积分威望金钱
高级会员, 积分 2968, 距离下一级还需 32 积分
高级会员, 积分 2968, 距离下一级还需 32 积分
前排,哇咔咔
积分威望金钱
中级会员, 积分 711, 距离下一级还需 89 积分
中级会员, 积分 711, 距离下一级还需 89 积分
安卓,我来了
积分威望金钱
高级会员, 积分 2916, 距离下一级还需 84 积分
高级会员, 积分 2916, 距离下一级还需 84 积分
社区QQ达人
使用QQ帐号登录论坛的用户
经常参与各类话题的讨论,发帖内容较有主见
长期对论坛的繁荣而不断努力,或多次提出建设性意见
活跃且尽责职守的版主
曾经为论坛做出突出贡献目前已离职的版主
为论坛做出突出贡献的会员
经常帮助其他会员答疑
积极宣传本站,为本站带来更多注册会员
积极宣传本站,为本站带来更多的用户访问量
Powered by如何使用Android Studio开发/调试Android源码_百度知道
如何使用Android Studio开发/调试Android源码
二、配置AS的JDK;&/linux-x86/Jars or directories' &#47,执行;idegen/excludeFolder url=&2'framework/ 在5;&Modules&#39:
其它版本的代码在添加frameworks时可能会显示成;
这样在导入时就会跳过abi和art文件夹:
AS在导入代码时比较慢.9;目录下是否有指向的&#39.0;bin&#47, 可自行修改;如果编译过.java的文件夹;&tools/excludeFolder url=&quot.1的源码中会生成res.
如.repo&quot、修改Android Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存;+&#39.ipr)
①编译源码(为了确保生成了;3&#39:/abi&quot.jar和libphonenumber-6:
&lt。如果确实用到了;idegen&#47.ipr
如果在导入时AS出现
则建议按照其给定的解决方法来解决
四;并选择上图&#39,这是idegen的代码不够严谨造成的.sh 等待出现类似下面的结果.
④在AS中打开源码根目录下新生成的android、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK
②设置&#39.java.java文件.$MODULE_DIR$&#47.jar.ipr和android.如, 这样可以确保使用源码里的库文件
三;&lt,将自己用不到的代码exclude出去:这里删除全部只是为了方便;tools&#47,则无需再次编译)
②检查out&#47,所以先修改IDEA_HOME&#47.2.iml。
我的分享里有修改这个bug的patch: 44078ms 这时会在源码的根目录下生成android,导致idegen,依次将frameworks和external文件夹添加进来;所指向的两个(注意,建议先修改file,如R;excludeFolder url=&quot.repo文件夹的语法,如.vmoptions)中-Xms和-Xmx的值,在将它们的路径添加进来就可以了.0.jar运行时抛FileNotFoundE选项;/1'$MODULE_DIR$/: mmm development&#47,或者直接使用我分享的idegen.过滤的越多.jar
如果idegen:5;/studio64;的依赖
先将所有依赖删掉;art&指向的' &#47。
③执行 development&#47,AS的处理速度就会越快、SDK
在IDE中添加一个没有classpath的JDK;file.jar)
点击上图中'file.vmoptions(x86的机器修改studio.可以仿照过滤: 5msTraversed tree.jar不存在; &#47.1的ContactsCommon用到了geocoder-2:/host&#47,只留下上图&#39。文档中使用的是748m;&idegen、生成导入AS所需配置文件(*:/$MODULE_DIR$&#47: Read excludes.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
知道智能回答机器人
根据知道用户的观点和内容总结出特定问题的答案,为知道用户提供更好的问答体验。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Android手机UI点九图(9 png)制作手册
下载积分:700
内容提示:Android手机UI点九图(9 png)制作手册
文档格式:PDF|
浏览次数:523|
上传日期: 19:58:06|
文档星级:
该用户还上传了这些文档
Android手机UI点九图(9 png)制作手册
官方公共微信1891人阅读
AndroidCamera(29)
现象:在sdcard上存放一个特殊分辨率的JPEG图片,比如1x10000。然后使用android自带的图库应用程序去浏览该图片。使用图库浏览图片,会先生成缩略图供用户浏览。此时,图库应用程序会异常退出,如果可以看其log,会发现dalvik分配内存时发生内存溢出。但是如果你使用别的图片查看工具,不去生成缩略图,直接打开该图片,则不会发生异常。分析:经过分析,发现google在做缩略图时,有一处错误。Google设定所有缩略图的分辨率都是96x96。以此为目标,然后根据原始图片的分辨率和目标图片来计算缩放因子。相关函数在文件ThumbnailUtils.java中,其路径为:/framework/base/media/java/android/media/ThumbnailUtils.java函数具体定义为:&&& /**&&&& * Creates a centered bitmap of the desired size.&&&& *&&&& * @param source original bitmap source&&&& * @param width targeted width&&&& * @param height targeted height&&&& * @param options options used during thumbnail extraction&&&& */&&& public static Bitmap extractThumbnail(&&&&&&&&&&& Bitmap source, int width, int height, int options) {&&&&&&& if (source == null) {&&&&&&&&&& &&&&&&&& }&&&&&&&&&&&&&&& if (source.getWidth() & source.getHeight()) {&&&&&&&&&&& scale = width / (float) source.getWidth();&&&&&&& } else {&&&&&&&&&&& scale = height / (float) source.getHeight();&&&&&&& }&&&&&&&& Matrix matrix = new Matrix();&&&&&&& matrix.setScale(scale, scale);&&&&&&& Bitmap thumbnail = transform(matrix, source, width, height,&&&&&&&&&&&&&&& OPTIONS_SCALE_UP | options);&&&&&&&&&& }如果原始图片的分辨率为,计算出来的scale为:scale = 96 / 1200 = 0.08所需要的memory大小为: *
* 2 = 24Kbyte如果原始图片的分辨率为1x10000,计算出来的scale为:Scale = 96 / 1 = 96所需要的memory大小为:1*96 * 10000*96 * 2 = 175Mbyte,而其本身所需要的空间为:1 * 10000 * 2 = 19Kbyte。Dalvik为每个进程设置了允许申请的memory大小,默认为16M。175M的memory需要是任何系统都不能满足的。总结:google在处理scale时,应该是只考虑了大图像缩小的情况,而没有考虑小图象放大的情况,特别是宽需要放大,而高需要缩小(或相反)。为了不让图库应用程序异常退出,可以在这里做一些限制,当其所需memory过大时,可以不去生成缩略图。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:240711次
积分:3145
积分:3145
排名:第6012名
原创:54篇
转载:60篇
评论:72条
(4)(22)(3)(2)(1)(7)(5)(10)(2)(10)(4)(4)(6)(1)(2)(2)(1)(1)(3)(2)(3)(5)(3)(2)(9)

我要回帖

更多关于 android 打开pdf 源码 的文章

 

随机推荐