知乎Android版翻頁
創(chuàng)新互聯(lián)建站為客戶提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。
翻頁,查看分頁文件的上一個(gè)頁面、下一個(gè)頁面或任意存在的非當(dāng)前頁面??梢詫?shí)體書或者移動(dòng)Web窗體中的內(nèi)容進(jìn)行改變,以觀看不同內(nèi)容。在互聯(lián)網(wǎng)上運(yùn)用時(shí)該機(jī)制還呈現(xiàn)可用于瀏覽到其他頁的用戶界面元素。
作用
翻頁:跳轉(zhuǎn)到上一個(gè)頁面、下一個(gè)頁面或任意存在的非當(dāng)前頁面。
本回答信息來自針對(duì)微信Android客戶端以及知乎Android客戶端的分析。\x0d\x0a\x0d\x0a我手機(jī)上裝了一鍵清理的軟件,平時(shí)從來不讓微信在后臺(tái)運(yùn)行,但是每當(dāng)打開知乎,不出三秒,微信消息就來了,消息并不固定,只是感覺微信被打開了,我在想知乎是不是跟微信合作,后臺(tái)打開微信,然后以此來賺錢的呢?\x0d\x0a首先針對(duì)題主的疑問,準(zhǔn)備的回答:不是\x0d\x0a\x0d\x0a實(shí)際的情況是,知乎調(diào)用微信sdk中分享的相關(guān)接口,微信sdk的相關(guān)接口里面,給微信發(fā)送了一個(gè)廣播,微信app就被喚醒了,這不是知乎的主觀行為,而是微信的(而且結(jié)合實(shí)際的分析來看,這個(gè)應(yīng)該也算是正常的功能)。\x0d\x0a\x0d\x0a以下是詳細(xì)分析:\x0d\x0a\x0d\x0a1首先說一下app的被喚醒(自啟動(dòng))機(jī)制。\x0d\x0aapp自啟動(dòng),基本上都是依靠Android的廣播來實(shí)現(xiàn)的,而且是靜態(tài)注冊(cè)的廣播(在AndroidManifest.xml文件中進(jìn)行配置的廣播),發(fā)送廣播的方法在一般情況下是sendBroadcast。\x0d\x0a\x0d\x0a2按照慣例,反編譯一下微信apk,然后搜索一下它能夠由哪些靜態(tài)廣播進(jìn)行喚醒,同時(shí)抓取廣播相關(guān)的log。\x0d\x0a\x0d\x0a結(jié)合微信的AndroidManifest.xml文件以及抓取的log,可以知道相關(guān)的BroadcastReceiver是EntryReceiver,相關(guān)的action為\x0d\x0a\x0d\x0acom.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER\x0d\x0acom.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_UNREGISTER\x0d\x0a\x0d\x0a從其名稱上看,是和注冊(cè)/注銷相關(guān),具體接收到廣播之后做了哪些處理,這些就不贅述了。\x0d\x0a\x0d\x0aI/ActivityManager(1107):Startproccom.tencent.mmforbroadcastcom.tencent.mm/.plugin.base.stub.WXEntryActivity$EntryReceiver:pid=28779uid=10131gids={50131,3003,1028,1015,3002,3001}\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a3接下來分析知乎的代碼\x0d\x0a\x0d\x0a搜索一下知乎反編譯之后的smali文件(sendBroadcast),其中只有一條是和微信相關(guān)的\x0d\x0a\x0d\x0azhihu_2.0.3_176/smali/com/tencent/mm/sdk/openapi/j.smali:invoke-virtual{v0,v4,v1},Landroid/content/Context;-sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V\x0d\x0a\x0d\x0a再看一下反編譯的java文件,能夠比較清楚的看到,就是利用com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER\x0d\x0a這個(gè)action來進(jìn)行注冊(cè),檢查一些必要的信息。\x0d\x0a\x0d\x0a根據(jù)這些信息,結(jié)合微信和知乎反編譯之后的文件,已經(jīng)可以完整的分析具體發(fā)生了哪些事情了。\x0d\x0a\x0d\x0acom.tencent.mm.sdk.openapi.j\x0d\x0a\x0d\x0apublicfinalbooleana(StringparamString)\x0d\x0a{\x0d\x0aif(!b("com.tencent.mm"))\x0d\x0a{\x0d\x0acom.tencent.mm.sdk.platformtools.a.a("MicroMsg.SDK.WXApiImplV10","registerappfailedforwechatappsignaturecheckfailed");\x0d\x0areturnfalse;\x0d\x0a}\x0d\x0athis.b=paramString;\x0d\x0acom.tencent.mm.sdk.platformtools.a.b("MicroMsg.SDK.WXApiImplV10","registerapp"+this.a.getPackageName());\x0d\x0aContextlocalContext=this.a;\x0d\x0aStringstr1="weixin://registerapp?appid="+this.b;\x0d\x0aStringstr2="com.tencent.mm"+".permission.MM_MESSAGE";\x0d\x0aIntentlocalIntent=newIntent("com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER");\x0d\x0aStringstr3=localContext.getPackageName();\x0d\x0alocalIntent.putExtra("_mmessage_sdkVersion",553910273);\x0d\x0alocalIntent.putExtra("_mmessage_appPackage",str3);\x0d\x0alocalIntent.putExtra("_mmessage_content",str1);\x0d\x0alocalIntent.putExtra("_mmessage_checksum",b.a(str1,str3));\x0d\x0alocalContext.sendBroadcast(localIntent,str2);\x0d\x0acom.tencent.mm.sdk.platformtools.a.b("MicroMsg.SDK.MMessage","sendmmmessage,intent="+localIntent+",perm="+str2);\x0d\x0areturntrue;\x0d\x0a}\x0d\x0a\x0d\x0a4最后,因?yàn)橥祽校晕抑皇谴蟾诺撵o態(tài)分析了相關(guān)代碼,沒發(fā)現(xiàn)知乎和微信做了什么喪失的事情,然后大概加了段logcheck了一下,從中也可以看出的確是和分享有關(guān),至于使用時(shí)機(jī)及頻率是否合適,這個(gè)和問題沒什么關(guān)系,不做討論。\x0d\x0a\x0d\x0aD/hillwind(5766):java.lang.Throwable\x0d\x0aD/hillwind(5766):atcom.hillwind.android.util.RLog.printStackTrace(RLog.java:11)\x0d\x0aD/hillwind(5766):atcom.tencent.mm.sdk.openapi.j.a(UnknownSource)\x0d\x0aD/hillwind(5766):atcom.zhihu.android.util.af.b(WeChatHelper.java:43)\x0d\x0aD/hillwind(5766):atcom.zhihu.android.widget.a.b(ActivityChooserModel.java:721)\x0d\x0aD/hillwind(5766):atcom.zhihu.android.widget.ShareActionProvider.setShareIntent(ShareActionProvider.java:98)\x0d\x0aD/hillwind(5766):atcom.zhihu.android.ui.fragment.bx.a(QuestionViewerFragment.java:221)\x0d\x0aD/hillwind(5766):atandroid.support.v4.app.j.a(FragmentManager.java:1973)\x0d\x0aD/hillwind(5766):atandroid.support.v4.app.g.onCreatePanelMenu(FragmentActivity.java:226)\x0d\x0aD/hillwind(5766):atandroid.support.v7.a.b.a(ActionBarActivity.java:233)\x0d\x0aD/hillwind(5766):atandroid.support.v7.a.g.a(ActionBarActivityDelegateICS.java:146)\x0d\x0aD/hillwind(5766):atandroid.support.v7.a.b.onCreatePanelMenu(ActionBarActivity.java:200)\x0d\x0aD/hillwind(5766):atandroid.support.v7.a.g$a.onCreatePanelMenu(ActionBarActivityDelegateICS.java:293)\x0d\x0aD/hillwind(5766):atcom.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:472)\x0d\x0aD/hillwind(5766):atcom.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:878)\x0d\x0aD/hillwind(5766):atcom.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:257)\x0d\x0aD/hillwind(5766):atandroid.os.Handler.handleCallback(Handler.java:733)\x0d\x0aD/hillwind(5766):atandroid.os.Handler.dispatchMessage(Handler.java:95)\x0d\x0aD/hillwind(5766):atandroid.os.Looper.loop(Looper.java:136)\x0d\x0aD/hillwind(5766):atandroid.app.ActivityThread.main(ActivityThread.java:5140)\x0d\x0aD/hillwind(5766):atjava.lang.reflect.Method.invokeNative(NativeMethod)\x0d\x0aD/hillwind(5766):atjava.lang.reflect.Method.invoke(Method.java:515)\x0d\x0aD/hillwind(5766):atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)\x0d\x0aD/hillwind(5766):atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)\x0d\x0aD/hillwind(5766):atdalvik.system.NativeStart.main(NativeMethod)
19元。
1、安卓知乎會(huì)員每月是19元。
2、安卓知乎會(huì)員開通后會(huì)獲得內(nèi)容特權(quán)和功能特權(quán)。
Android 是一種基于 Linux? V2.6 內(nèi)核的綜合操作環(huán)境。最初,Android 的部署目標(biāo)是移動(dòng)電話領(lǐng)域,包括智能電話和更廉價(jià)的翻蓋手機(jī)。但是, Android 全面的計(jì)算服務(wù)和豐富的功能支持完全有能力擴(kuò)展到移動(dòng)電話市場(chǎng)以外。Android 也可以用于其他的平臺(tái)和應(yīng)用程序。
黑莓和 iPhone 都提供了受歡迎的、高容量的移動(dòng)平臺(tái),但是卻分別針對(duì)兩個(gè)不同的消費(fèi)群體。黑莓是企業(yè)業(yè)務(wù)用戶的不二選擇。但是,作為一種消費(fèi)設(shè)備,它在易用性和 “新奇特性” 方面難以和 iPhone 抗衡。Android 則是一個(gè)年輕的、有待開發(fā)的平臺(tái),它有潛力同時(shí)涵蓋移動(dòng)電話的兩個(gè)不同消費(fèi)群體,甚至可能縮小工作和娛樂之間的差別
如今,很多基于網(wǎng)絡(luò)或有網(wǎng)絡(luò)支持的設(shè)備都運(yùn)行某種 Linux 內(nèi)核。這是一種可靠的平臺(tái):可經(jīng)濟(jì)有效地進(jìn)行部署和提供支持,并且可直接作為面向部署的良好的設(shè)計(jì)方法。這些設(shè)備的 UI 通常是基于 HTML 的,可通過 PC 或 Mac 瀏覽器查看。但并不是每個(gè)設(shè)備都需要通過一個(gè)常規(guī)的計(jì)算設(shè)備來控制。
Android 簡(jiǎn)史
Android 平臺(tái)是 Open Handset Alliance 的成果,Open Handset Alliance 組織由一群共同致力于構(gòu)建更好的移動(dòng)電話的公司組成。這個(gè)組織由 Google 領(lǐng)導(dǎo),包括移動(dòng)運(yùn)營(yíng)商、手持設(shè)備制造商、零部件制造商、軟件解決方案和平臺(tái)提供商以及市場(chǎng)營(yíng)銷公司。從軟件開發(fā)的觀點(diǎn)看,Android 正處在開源領(lǐng)域的中心位置。
市場(chǎng)上第一款支持 Android 的手機(jī)是由 HTC 制造并由 T-Mobile 供應(yīng)的 G1。這款設(shè)備從設(shè)想到推出花了大約一年的時(shí)間,惟一可用的軟件開發(fā)工具是一些實(shí)行增量改進(jìn)的 SDK 發(fā)行版。隨著 G1 發(fā)行日的臨近,Android 團(tuán)隊(duì)發(fā)布了 SDK V1.0,用于這個(gè)新平臺(tái)的應(yīng)用程序也浮出水面。
為了鼓勵(lì)創(chuàng)新,Google 舉辦了兩屆 “Android Developer Challenges”,為優(yōu)勝的參賽作品提供數(shù)百萬美金的獎(jiǎng)勵(lì)。G1 問世幾個(gè)月之后,隨后就發(fā)布了 Android Market,它使用戶可以瀏覽應(yīng)用程序,并且可以將應(yīng)用程序直接下載到他們的手機(jī)上。經(jīng)過大約 18 個(gè)月,一個(gè)新的移動(dòng)平臺(tái)進(jìn)入公眾領(lǐng)域。
名稱欄目:android知乎,蘋果安卓知乎
URL分享:http://www.rwnh.cn/article24/dsdgjje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、做網(wǎng)站、標(biāo)簽優(yōu)化、品牌網(wǎng)站建設(shè)、Google、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)