Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

zhn2174/ActivityStack

Repository files navigation

ActivityStack

这个项目有什么用呢?其实没什么用,但其实也很有用。主要是一些跟具体项目无关的工具类。

添加了一个带有3D翻转效果的View。FlipLayout继承自FrameLayout,通过调用FlipLayout的flip方法可以让子View按index顺序,一个个翻转,效果如下图。这个效果跟之前的Rotate3D稍有区别,Rotate3D是来自Google的实现,其中的Animator实现也是仿的Google的效果。Flip的效果会更好一些。 FlipLayout

ShowMoreAniamtion

增加一些工具代码,可以辅助定位界面所在Acitivity和Fragment。

GitHub

一个通过Looper.setMessageLogging来监听HandlerMessage消息实现的监控主线程是否出现卡顿的工具。

注意由于原理是监控的Handler消息的处理,所以如果有代码在主线程执行时候没有经过Handler处理,那将监控不到,比如触摸事件,触摸事件是在nativePollOnce里直接跳转到WindowInputEventReceiver#dispatchInputEvent方法,完全没有经过Handler,所以触摸事件将无法监控到。

ThreadMonitor.getInstance().install();

一个反射工具类,可以类似写脚本一样反射java属性和方法。

ReflectUtils.reflect(application, "mLoadedApk.mActivityThread.mActivities");
ReflectUtils.reflect(application, "mModel.getName().toString()");
ReflectUtils.reflect(application, "mModel.setName(%1)", new Object[]{"new_name"});
ReflectUtils.reflect(null, "android.app.ActivityThread#currentApplication()");

用ReflectUtils反射获取当前App的所有处于Activity栈中的Activity的引用。

ApplicationUtils.getTopActivity();
ApplicationUtils.getActivities();

打印Activity和Fragment生命周期的工具,利用了系统Api,对Activity和Fragment是0侵入。如果项目非常大了,一些界面很可能不是自己维护的,要找到某个界面对应的类,看源码可能效率不是很高,可以用这个类非常简单快速的定位界面对应的类。

new LifecycleUtils(this).register();

这个是从Facebook的ReactNative中偷过来的。ReactNative里可以通过摇一摇手机然后弹一个弹窗辅助开发。比如某个界面需要手动输入的东西非常多。这时候可以写一个自动填充的代码,然后通过摇一摇弹出菜单,点击调用代码。

new ShakeManager(this).registerShakeDetector();

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 86.1%
  • Kotlin 13.9%

AltStyle によって変換されたページ (->オリジナル) /