Android
parallelyk
这个作者很懒,什么都没留下…
展开
-
Android 属性动画
Property Animation是如何运作的首先,来看一下两个不一样的Property Animation场景:场景一(Linear Animation):Animation要求一个物体A的x属性在40ms内匀速地从0px变化到40px。帧的刷新率默认为10ms/帧。场景二(Not-Linear Animation):Animation要求一个物体A的x属性在40ms内先加速后转载 2016-05-24 15:41:22 · 264 阅读 · 0 评论 -
Android中注解的简单使用
前言注解最常见的用法就是去掉繁琐的findviewbyId方法,通过注解的方式绑定控件,代替findviewbyId和强制类型转换。能使代码更简洁。@ViewInject(id = R.id.tx1)private TextView textView;@ViewInject(id = R.id.button)private Button button;下面介绍Android中注解原创 2017-12-12 19:57:24 · 660 阅读 · 0 评论 -
Error:Execution failed for task ':app:transformClassesWithDexForDebug
引入之前在eclipse下开发的项目到AndroidStudio 遇到了如下错误:Error:Execution failed for task ':guanXiang:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.pr原创 2016-06-22 15:44:40 · 4722 阅读 · 0 评论 -
RuntimeException: Canvas: trying to use a recycled bitmap
在写瀑布流图片加载的时候出现了一个错误 Canvas: trying to use a recycled bitmap 从log可以找到错误的源头@Override protected void onDestroy() { super.onDestroy(); // Bitmap对象回收掉 if (bitmap != null)原创 2016-06-16 21:31:04 · 904 阅读 · 0 评论 -
Android 插件化原理解析——插件加载机制
上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中;转载 2016-06-30 15:39:01 · 3379 阅读 · 0 评论 -
Android 插件化原理解析——Hook机制之AMS&PMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式(以下简称AMS,PMS)。ActivityManagerS转载 2016-06-29 17:23:34 · 3087 阅读 · 0 评论 -
Android插件化原理解析——Hook机制之Binder Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的转载 2016-06-29 16:53:25 · 563 阅读 · 0 评论 -
Android插件化原理解析——Hook机制之动态代理
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-framework,参考此项目的dynamic-转载 2016-06-29 16:16:18 · 778 阅读 · 0 评论 -
Shared storage cannot protect your application from code injection attacks
在动态加载dex的时候可能会出现以下问题: java.lang.IllegalArgumentException: Optimized data directory /storage/emulated/0 is not owned by the current user. Shared storage cannot protect your application from code in原创 2016-06-29 15:32:45 · 1588 阅读 · 0 评论 -
Binder设计详解
Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binder通转载 2016-05-23 16:31:19 · 129 阅读 · 0 评论 -
Android延时启动任务的方法
开启新线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage(); //告诉主线程执行任务 } }).start 利用定时器TimerTask tas原创 2016-05-23 16:29:14 · 653 阅读 · 0 评论 -
Exception:must implement OnFragmentInteractionListener
转载请注明出处:http://blog.csdn.net/parallelyk今天写代码的时候发现,用Android Studio创建一个blank Fragment的时候会为我们创建一个Fragment的模板。public class MainFragment extends Fragment { // TODO: Rename parameter arguments, ch原创 2016-05-26 21:30:49 · 3638 阅读 · 2 评论 -
Android项目笔记:JobService
在Android5.0之后,系统为我们提供了一个后台定时任务,在特定的条件下触发。它就是JobService。JobService在满足条件的情况下,会在APP的主线程中执行任务。因此需要我们注意不能直接执行耗时的任务。JobService的使用首先要先申请一个保护权限 "android.permission.BIND_JOB_SERVICE" ,否则系统将跳过这个JobService。<s...原创 2018-03-29 19:29:37 · 2352 阅读 · 0 评论