赞了文章2019-12-13
还记得我们在代理Activity模式里谈到启动插件APK里的Activity的两个难题吗,由于插件里的Activity没在主项目的Manifest里面注册,所以无法经历系统Framework层级的一系列初始化过程,最终导致获得的Activity实例并没有生命周期和无法使用res资源。
赞了文章2019-12-13
简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类,从而执行一些新的代码逻辑。但是使用这种方法却不能直接启动插件里的Activity。
赞了文章2019-12-13
我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能(特别是 SDK项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。
赞了文章2019-06-02
举个例子,如果我们开发了一个叫做MD5穷举的应用,每个请求都会携带一个md5加密字符串,最终系统穷举出所有的结果,并返回原始字符串。这个时候我们的应用场景或者说应用业务是属于CPU密集型而不是IO密集型。这个时候CPU一直在做有效计算,甚至可以把CPU利用率跑满,...
赞了文章2018-01-06
And the Lord spake, saying, "First shalt thou take out the Holy Pin. Then, shalt thou count to three. No more. No less. Three shalt be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, nor eithe...
赞了回答2017-03-31
What a Terrible Failure: Report a condition that should never happen. The error will always be logged at level ASSERT with the call stack. Depending on system configuration, a report may be added to the DropBoxManager and/or the process may be ter...
赞了回答2017-03-31
错误级别不同,Log.e代表错误级别的日志,Log.wtf是中断(ASSERT)级别的错误,毕竟是What The Fuck,一看就是严重BUG才骂街了。
提出了问题2017-01-23
关注了问题2016-09-29
提出了问题2016-08-14
关注了问题2016-04-22
赞了回答2016-04-22
因为post runnable并不是另起线程,这段代码是会阻塞主线程的,所以卡顿,甚至会ANR,请挪走。
提出了问题2016-04-22
赞了回答2016-04-12
在 Java 中getApplicationContext.getResources().getString(R.string.server) 获取到该接口 url
回答了问题2016-04-08
使用桥接试试?
赞了文章2016-04-08
在 Android 中,只有主线程才能操作 UI,但是主线程不能进行耗时操作,否则会阻塞线程,产生 ANR 异常,所以常常把耗时操作放到其它子线程进行。如果在子线程中需要更新 UI,一般是通过 Handler 发送消息,主线程接受消息并且进行相应的逻辑处理。除了直接使用 Handl...
赞了文章2016-04-08
在 Android 中,只有主线程才能操作 UI,但是主线程不能进行耗时操作,否则会阻塞线程,产生 ANR 异常,所以常常把耗时操作放到其它子线程进行。如果在子线程中需要更新 UI,一般是通过 Handler 发送消息,主线程接受消息并且进行相应的逻辑处理。除了直接使用 Handl...
赞了文章2016-04-08
本文是android滚动相关的系列文章的第二篇,主要总结一下使用手势相关的代码逻辑。主要是单点拖动,多点拖动,fling和OveScroll的实现。每个手势都会有代码片段。
提出了问题2016-04-06
提出了问题2016-02-29