taplytics / Taplytics-Android-SDK

Taplytics Android SDK
http://taplytics.com
19 stars 9 forks source link

Taplytics SDK leaks Application Activities #7

Closed vvasanth86 closed 9 years ago

vvasanth86 commented 9 years ago

Hi Guys,

I'm was using LeakCanary to profile our application and found that Taplytics SDK consistently leaks almost every application Activity.

Can you guys look into this? We are hoping to launch the app soon.

Leak Overview

In <app-package>:1.0:68.
* <app-package>.ui.activities.ProfileActivity has leaked:
* GC ROOT static com.taplytics.sdk.managers.bat.buffalo
* references com.taplytics.sdk.managers.bat.buffalo
* references com.taplytics.sdk.resources.cockroach.mParent
* references com.android.internal.policy.impl.PhoneWindow$DecorView.mContext
* leaks <app-package>.ui.activities.ProfileActivity instance

Details

* Class com.taplytics.sdk.managers.bat
|   static $staticOverhead = byte[] [id=0x42893da9;length=24;size=40]
|   static buffalo = com.taplytics.sdk.managers.bat [id=0x42894448]
* Instance of com.taplytics.sdk.managers.bat
|   static $staticOverhead = byte[] [id=0x42893da9;length=24;size=40]
|   static buffalo = com.taplytics.sdk.managers.bat [id=0x42894448]
|   alligator = java.util.HashMap [id=0x42894fb8]
|   armadillo = null
|   wolverine = null
|   name = null
|   cockroach = null
|   buffalo = com.taplytics.sdk.utils.ape [id=0x42894b90]
|   buffalo = com.android.internal.policy.impl.PhoneWindow$DecorView [id=0x4275c130]
|   buffalo = null
|   buffalo = null
|   buffalo = null
|   buffalo = com.taplytics.sdk.resources.cockroach [id=0x41f769b8]
|   bison = true
|   bee = false
|   beaver = false
|   toad = false
|   bear = false
|   yak = 500
* Instance of com.taplytics.sdk.resources.cockroach
|   buffalo = com.taplytics.sdk.compat.buffalo [id=0x424406d8]
|   albatross = 1432810838234
|   alpaca = 56.8814
|   alligator = 50.89397
|   mForeground = null
|   mSelfBounds = android.graphics.Rect [id=0x42134430]
|   mOverlayBounds = android.graphics.Rect [id=0x42128568]
|   mMatchParentChildren = java.util.ArrayList [id=0x4213a5c0]
|   mForegroundPaddingBottom = 0
|   mForegroundPaddingLeft = 0
|   mForegroundPaddingRight = 0
|   mForegroundPaddingTop = 0
|   mForegroundInPadding = true
|   mMeasureAllChildren = false
|   mForegroundGravity = 119
|   mForegroundBoundsChanged = true
|   mAnimationListener = null
|   mCachePaint = null
|   mVisibilityChangingChildren = null
|   mTransitioningViews = null
|   mChildTransformation = null
|   mChildren = android.view.View[] [id=0x4268c028;length=12]
|   mTransition = null
|   mCurrentDrag = null
|   mCurrentDragView = null
|   mDisappearingChildren = null
|   mDragNotifiedChildren = null
|   mFirstHoverTarget = null
|   mFirstTouchTarget = null
|   mFocused = null
|   mOnHierarchyChangeListener = null
|   mLocalPoint = null
|   mInvalidateRegion = null
|   mInvalidationTransformation = null
|   mLayoutTransitionListener = android.view.ViewGroup$3 [id=0x42430e08]
|   mLayoutAnimationController = null
|   mLastTouchDownX = 0.0
|   mLastTouchDownTime = 0
|   mLastTouchDownY = 0.0
|   mLayoutCalledWhileSuppressed = false
|   mLayoutMode = -1
|   mLastTouchDownIndex = -1
|   mHoveredSelf = false
|   mGroupFlags = 2244691
|   mPersistentDrawingCache = 2
|   mSuppressLayout = false
|   mChildrenCount = 0
|   mChildCountWithTransientState = 0
|   mTwHorizontalScrollbarRectRelativePosX = 0
|   mTwVerticalScrollbarRectRelativePosY = 0
|   mTwX = 50.89397
|   mTwY = 56.8814
|   mChildAcceptsDrag = false
|   mXmlFilePath = null
|   mAccessibilityDelegate = null
|   mUnsetPressedState = null
|   mAnimator = null
|   mAttachInfo = null
|   mBackground = null
|   mBackgroundPath = null
|   mUnscaledDrawingCache = null
|   mTwVerticalScrollbarRect = android.graphics.Rect [id=0x4213b1d0]
|   mTwHorizontalScrollbarRect = android.graphics.Rect [id=0x42134410]
|   mTransformationInfo = null
|   mClipBounds = null
|   mContentDescription = null
|   mContext = <app-package>.ABApplication [id=0x41eda280]
|   mCurrentAnimation = null
|   mDisplayList = android.view.GLES20DisplayList [id=0x424640a8]
|   mDrawableState = null
|   mDrawingCache = null
|   mTouchDelegate = null
|   mFloatingTreeObserver = null
|   mHardwareLayer = null
|   mTag = null
|   mSendViewStateChangedAccessibilityEvent = null
|   mInputEventConsistencyVerifier = null
|   mKeyedTags = null
|   mSendViewScrolledAccessibilityEvent = null
|   mScrollCache = null
|   mLayerPaint = null
|   mResources = android.content.res.Resources [id=0x41ed80e0]
|   mLayoutInsets = null
|   mLayoutParams = android.widget.FrameLayout$LayoutParams [id=0x4211c5d0]
|   mPerformClick = null
|   mPendingCheckForTap = null
|   mListenerInfo = android.view.View$ListenerInfo [id=0x420fe830]
|   mLocalDirtyRect = null
|   mMatchIdPredicate = null
|   mMatchLabelForPredicate = null
|   mMeasureCache = android.util.LongSparseLongArray [id=0x42475390]
|   mPendingCheckForLongPress = null
|   mParent = com.android.internal.policy.impl.PhoneWindow$DecorView [id=0x4240f230]

Additional Info

* Reference Key: c86d5873-1d00-4477-8c6e-e09d51789d48
* Device: samsung samsung SM-G360H core33gdd
* Android Version: 4.4.4 API: 19 LeakCanary: 1.3.1
* Durations: watch=5033ms, gc=188ms, heap dump=1471ms, analysis=48615ms

Thanks!

VicV commented 9 years ago

Yep looking into it.

VicV commented 9 years ago

Fixed this up in 1.4.5