摘要:
转自:https://www.jianshu.com/p/18f16aba79dd image.png ANR(App Not Responding)基本上99%的App都有,即使是系统,也有system_anr,我相信虽然ANR问题这样的普遍,还是有很多人对ANR问题即熟悉又陌生的,ANR中log 阅读全文
摘要:
今天,居然被问起关于singleTask的问题,问题如下: “现在Activity栈里有4个Activity,从栈底到栈顶分别是A->B->C->D,现在从Activity D启动Activity B,问此时的栈情况。” 我居然忘了,只是记得有singleTask/singleTop/singleI 阅读全文
摘要:
今天跑了下某项目,发现报错: 大家看了就知道,这基本上就是support包版本兼容问题,可是之前打开过没有问题啊,怎么今天就跑不起来了? 怀疑是Dependency中存在标示为获取最新版本的库(依赖包没有标记具体的版本号,而是使用了加号“+”),因为发布了新的包,和项目中其他的包发生了版本冲突所导致 阅读全文
摘要:
今天升级了Android Studio到2.1正式版,发现其建议更新Gradle版本,于是把Gradle更新到2.1.0,但是更新后项目无法跑,报错:Duplicate files copied in APK META-INF。 之前项目也有遇到同样的问题,只需要在app项目中(我的项目有几个子mo 阅读全文
摘要:
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的source,decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空 阅读全文
摘要:
最近做项目遇到一个问题。在一个Activity中,需要显示图片并输入文本,所以使用了ImageView和EditText,每次ImageView都会加载比较高清的图片(会比较占内存),而且每次Activity加载完之后,EditText都会获取焦点并弹出软键盘。再启动完之后(软键盘没有隐藏),点击“Cancel”(调用Acivity.finish())来关掉Activity,重复打开并关闭Activity6次左右,就爆出OOM。这个问题很困扰我,按照道理说不应该,我的Activity都finish掉了,内存应该会被回收,但是没有,内存一直积累导致OOM。后来我通过MAT发现,Activity被 阅读全文
摘要:
我们经常可以使用Intent.setData(Uri)来启动一个Activity。所以我在发送一个Broadcast的时候,也使用Intent.setData(Uri)来实现,结果导致Broadcast无法发送成功,后来还是需要使用putStringExtra作为String保存。 阅读全文
摘要:
今天做项目,由于该项目需要有多个客户端进行交互,而我当时手上只有一个Android平板,所以就像看看能否通过ADB手动发出Broadcast,一搜,真有,在此分享:通过命令行执行adb shell am broadcast发送广播通知。adb shell am broadcast 后面的参数有:[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] [-c <CATEGORY> [-c <CATEGORY>] ...] [-e|--es <EXTRA_KEY> <EXTRA_ST 阅读全文
摘要:
在实际应用中,我们可能需要在文本框中自动显示最新的内容(例如QQ的聊天窗口),可以用下面的代码实现: EditTet.setMovementMethod(ScrollingMovementMethod.getInstance()); EditView.setSelection(pView.getText().length(), pView.getText().length()); 阅读全文
摘要:
最近一个项目,需要在文字中插入一些图片。通过网上搜索发现TextView可以通过SpannableString和ImageSpan来实现。自己就马上试了下,没有成功。因为我是需要使用外部文件的,不是内部资源的drawable。通过几次尝试,发现是构建ImageSpan方法不对。若是使用内部资源,可以直接使用构造方法ImageSpan(Drawable),而使用外部图片,需要用构造方法ImageSpan(Context, Bitmap)。刚开始的时候我就是把Bitmap构建为一个BitmapDrawable再传给ImageSpan(Drawable),才一直无法成功。以下是示范的代码:Strin 阅读全文