package Ġengineer . com . profile Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġcom . squareup . leak can ary . Android Excluded Refs Ċ Ċ import Ġcom . squareup . leak can ary . Leak Can ary Ċ import Ġcom . squareup . leak can ary . Ref Watcher Ċ import Ġcom . squareup . leak can ary . internal . Activity Lifecycle Callbacks Adapter Ċ import Ġengineer . com . profile . leak can ary . Le aked Activity Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* Ġ@ author : Ġro ok ie Ċ Ġ* Ġ@ date : Ġ 2 0 1 8 - 0 9 - 2 0 Ċ Ġ* Ġ@ desc Ċ Ġ*/ Ċ class ĠProfile Application Ġ: ĠApplication () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĊĠĠĠĠĠĠĠ ĠsetUp Leak Can ary () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Leak Can ary () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Leak Can ary . isIn Analyzer Process ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġprocess Ġis Ġdedicated Ġto ĠLe ak Can ary Ġfor Ġheap Ġanalysis . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYou Ġshould Ġnot Ġinit Ġyour Ġapp Ġin Ġthis Ġprocess . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Leak Can ary () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Leak Can ary (): ĠRef Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġexclude Ġsome Ġreference ĊĊĠĠĠĠĠĠĠ Ġval Ġexcluded Refs Ġ= ĠAndroid Excluded Refs . create Android Defaults () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. instance Field (" engine er . com . profile . leak can ary . Le aked Activity ", Ġ" my Observer ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġref Watcher Ġ= ĠLe ak Can ary . ref Watcher ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. watch Delay ( 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. watch Activities ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. excluded Refs ( excluded Refs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build And Install () ĊĊĠĠĠĠĠĠĠ Ġregister Activity Lifecycle Callbacks ( object Ġ: ĠActivity Lifecycle Callbacks Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Destroyed ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠLe aked Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref Watcher . watch ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠLog . e (" profiler "," exclude s == \ n "+ excluded Refs . toString ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġref Watcher ĊĠĠĠ Ġ} Ċ } Ċ