Article 2017- Q1

  1. Android無需權(quán)限顯示懸浮窗, 兼談逆向分析app

最近UC瀏覽器中文版出了一個快速搜索的功能, 在使用其他app的時候, 如果復(fù)制了一些內(nèi)容, 屏幕頂部會彈一個窗口, 提示一些操作, 點(diǎn)擊后跳轉(zhuǎn)到UC, 顯示這個懸浮窗不需要申請android.permission.SYSTEM_ALERT_WINDOW
權(quán)限.

講解了Java內(nèi)存模型狰晚,java內(nèi)存中

  • 使用post方法提交任務(wù)锋叨,postAtFrontOfQueue將任務(wù)加入到隊(duì)列前端邻吞,postAtTime指定時間提交任務(wù)澜汤,postDelayed延后提交任務(wù)找都。
  • 使用sendMessage方法可以發(fā)送消息,sendMessageAtFrontOfQueue將該消息放入消息隊(duì)列前端纳像,sendMessageAtTime 指定時間發(fā)送消息窖张,sendMessageDelayed延后提交消息。

  • Android 6.0 Overview Screen實(shí)現(xiàn)原理

android 5.0中豹障,這個任務(wù)得到了進(jìn)一步的加強(qiáng)冯事,在android 5.0之前overView Screen中顯示的任務(wù)快照是不可以配置的,但是在android 5.0中是可以配置的血公,開發(fā)者可以指定那些activity以什么樣的形式昵仅,什么UI風(fēng)格顯示在最近任務(wù)列表中。
寫入的操作全部都是在TaskPersister類的LazyTaskWriterThread線程中完成的:LazyTaskWriterThread@TaskPersister

  • GC是按照有向圖是否可達(dá)來判斷對象實(shí)例是否有用
  • 如果不在需要某個實(shí)例累魔,卻仍然被引用摔笤,這個情況叫做內(nèi)存泄露

  • 匿名類/非靜態(tài)類內(nèi)部class會保持對它所在Activity的引用,使用時要注意它們的生命周期不能超過Activity垦写,否則要用static inner class

  • 善于在Activy中的生命周期(比如onPause)中手動控制其他類的生命周期

  • 使用新版Android Studio檢測內(nèi)存泄露和性能

  • 分析內(nèi)存泄露

三吕世、OAuth的思路
OAuth在"客戶端"與"服務(wù)提供商"之間,設(shè)置了一個授權(quán)層(authorization layer)梯投。"客戶端"不能直接登錄"服務(wù)提供商"命辖,只能登錄授權(quán)層,以此將用戶與客戶端區(qū)分開來分蓖。"客戶端"登錄授權(quán)層所用的令牌(token)尔艇,與用戶的密碼不同。用戶可以在登錄的時候么鹤,指定授權(quán)層令牌的權(quán)限范圍和有效期终娃。
"客戶端"登錄授權(quán)層以后,"服務(wù)提供商"根據(jù)令牌的權(quán)限范圍和有效期蒸甜,向"客戶端"開放用戶儲存的資料棠耕。

原來的路由系統(tǒng)還可以繼續(xù)使用柠新,我們可以把整套架構(gòu)想象成互聯(lián)網(wǎng)昧辽,現(xiàn)在多個進(jìn)程有多個路由,我們只需要把多個路由連接到一起登颓,那么整個路由系統(tǒng)還是可以正常運(yùn)行的。所以我們把原有的路由Router稱之為本地路由LocalRouter红氯,現(xiàn)在框咙,我們需要提供一個IPS咕痛、DNS供應(yīng)商,那就創(chuàng)建一個進(jìn)程喇嘱,該進(jìn)程的作用就是注冊路由茉贡,鏈接路由,轉(zhuǎn)發(fā)報文者铜,我們稱之為廣域路由WideRouter腔丧。

BroadcastReciver - 它本身不是context,也沒有context在它里面拿撩,但是每當(dāng)一個新的靜態(tài)廣播到達(dá)的時候衣厘,框架都傳遞一個context對象到onReceive()。這個context是一個ReceiverRestrictedContext實(shí)例压恒,它有兩個主要函數(shù)被禁掉:registerReceiver()和bindService()影暴。這兩個函數(shù)在BroadcastReceiver.onReceive()不允許調(diào)用。每次Receiver處理一個廣播探赫,傳遞進(jìn)來的context都是一個新的實(shí)例型宙。

快速實(shí)現(xiàn)Parcelable接口的插件。
4伦吠、Android Postfix Completion

可根據(jù)后綴快速完成代碼妆兑。

自Android3.1開始,系統(tǒng)本身則增加了對所有app當(dāng)前是否處于運(yùn)行狀態(tài)的跟蹤讨勤。在發(fā)送廣播時箭跳,不管是什么廣播類型,系統(tǒng)默認(rèn)直接增加了值為FLAG_EXCLUDE_STOPPED_PACKAGES的flag潭千,導(dǎo)致即使是靜態(tài)注冊的廣播接收器谱姓,對于其所在進(jìn)程已經(jīng)退出的app,同樣無法接收到廣播刨晴。

但是對于自定義的廣播屉来,可以通過復(fù)寫此flag為FLAG_INCLUDE_STOPPED_PACKAGES,使得靜態(tài)注冊的BroadcastReceiver狈癞,即使所在App進(jìn)程已經(jīng)退出s茄靠,也能能接收到廣播,并會啟動應(yīng)用進(jìn)程蝶桶,但此時的BroadcastReceiver是重新新建的慨绳。

當(dāng)所有的非守護(hù)線程結(jié)束時,程序也就終止了,同時會殺死進(jìn)程中的所有守護(hù)線程脐雪。反過來說厌小,只要任何非守護(hù)線程還在運(yùn)行,程序就不會終止战秋。

Attr: flag表示這幾個值可以做或運(yùn)算; enum只能讓你選擇其中一個值

  • Log.i(簡單字符串)
  • Log.i(局部變量)

  • Log.i(成員變量)

  • Log.i(簡單字符串+局部變量)
    以上四種情況,日志被徹底移除狰闪,不會額外增加內(nèi)存疯搅。

  • Log.i(簡單字符串+成員變量)
    日志被移除,但是字符串拼接會存在尝哆,并占用內(nèi)存秉撇。

  • Log.i(成員函數(shù))其中,成員函數(shù)返回值為: 簡單字符串

  • Log.i(成員函數(shù))其中秋泄,成員函數(shù)返回值為: 簡單字符串+局部變量
    以上兩種情況琐馆,日志被徹底移除,不會額外增加內(nèi)存恒序。

  • Log.i(成員函數(shù))其中瘦麸,成員函數(shù)返回值為: 簡單字符串+成員變量

  • 日志被移除,但是字符串拼接會存在歧胁,并占用內(nèi)存滋饲。

  • Android draw、onDraw喊巍、dispatchDraw屠缭、invalidate、postInvalidate一些簡要說明

調(diào)用dispatchDraw ()方法繪制子視圖(如果該View類型不為ViewGroup崭参,即不包含子視圖呵曹,不需要重載該方法)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市何暮,隨后出現(xiàn)的幾起案子奄喂,更是在濱河造成了極大的恐慌,老刑警劉巖海洼,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跨新,死亡現(xiàn)場離奇詭異,居然都是意外死亡坏逢,警方通過查閱死者的電腦和手機(jī)域帐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門赘被,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俯树,你說我怎么就攤上這事帘腹。” “怎么了许饿?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舵盈。 經(jīng)常有香客問我陋率,道長,這世上最難降的妖魔是什么秽晚? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任瓦糟,我火速辦了婚禮,結(jié)果婚禮上赴蝇,老公的妹妹穿的比我還像新娘菩浙。我一直安慰自己,他們只是感情好句伶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布劲蜻。 她就那樣靜靜地躺著,像睡著了一般考余。 火紅的嫁衣襯著肌膚如雪先嬉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天楚堤,我揣著相機(jī)與錄音疫蔓,去河邊找鬼。 笑死身冬,一個胖子當(dāng)著我的面吹牛衅胀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酥筝,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼滚躯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了樱哼?” 一聲冷哼從身側(cè)響起哀九,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搅幅,沒想到半個月后阅束,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茄唐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年息裸,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝇更。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡呼盆,死狀恐怖年扩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情访圃,我是刑警寧澤厨幻,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站腿时,受9級特大地震影響况脆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜格了,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徽鼎。 院中可真熱鬧盛末,春花似錦、人聲如沸否淤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹括。三九已至算墨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汁雷,已是汗流浹背净嘀。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侠讯,地道東北人挖藏。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像厢漩,于是被迫代替她去往敵國和親膜眠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,870評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理溜嗜,服務(wù)發(fā)現(xiàn)宵膨,斷路器,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對象 2: 1)客戶端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,284評論 0 18
  • 作者:IT猿嫂 鏈接:https://www.zhihu.com/question/40975120/answer...
    我上三年級閱讀 245評論 0 0
  • word2vec介紹 word2vec是一個將單詞轉(zhuǎn)換成向量形式的工具炸宵”脔铮可以把對文本內(nèi)容的處理簡化為向量空間中的向...
    空白_J閱讀 12,148評論 1 6