Xposed第四課(微信篇) 朋友圈點贊 (1)
[原創]Xposed第三課(微信篇) 防止好友訊息撤回
上篇文章有些小夥伴問我怎麼去看佈局檔案的,我這裡交代先我分析介面的方法
1、 adb shell dumpsys activity top
2、 as自帶的layout inspector(有些情況無法得到繪製)
但是顯示效果最好
3、 Android Device Monitor 相信以前用eclipse時候adt經常用到的
好了廢話不多說了,以上是我用到的,如果有更好的可以給我留言
首先terminal輸入adb shell dumpsys activity top 如下
往下繼續翻
然後我們們看看分析分析SnsTimeLineUI裡面的程式碼邏輯
public void onCreate(Bundle bundle) {
...省略N多程式碼...
this.skT=this.rUA;
this.slh.a(this.sle, this.jzz,str, str2, this.slf, this.rWo, this.slg);
//這句話是初始化裡面的列表等組建
this.slh.onCreate();
ae.byE().init();
this.mActionBar=getSupportActionBar();
com.tencent.mm.kernel.g.Ea();
com.tencent.mm.kernel.g.DX().fUP.a((int) com.tencent.mm.plugin.appbrand.jsapi.bio.face.c.CTRL_INDEX, (e) this);
com.tencent.mm.kernel.g.Ea();
com.tencent.mm.kernel.g.DX().fUP.a(682, (e) this);
com.tencent.mm.kernel.g.Ea();
com.tencent.mm.kernel.g.DX().fUP.a(218, (e) this);
...省略N多程式碼...
}
通過上面的程式碼可以找到
com.tencent.mm.plugin.sns.ui.bb
在這個檔案裡面就有我們剛才在terminal裡面看到的很多關聯的東西
所以關聯起來可以開始編碼了,裡面註釋的程式碼都是列印的關鍵資訊,可以在一邊除錯一邊看輸出資訊
/**
*hook 朋友圈
*
*@param applicationContext
*@param classLoader
*/
private void hookWxMoments(final Context applicationContext, final ClassLoader classLoader) throws Error {
XposedHelpers.findAndHookMethod("com.tencent.mm.plugin.sns.ui.bb",
classLoader,
"onCreate",
new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
super.afterHookedMethod(param);
Field mat=XposedHelpers.findFieldIfExists(param.thisObject.getClass(),"mActivity");
final Activity mActivity=(Activity) mat.get(param.thisObject);
Field odm=XposedHelpers.findFieldIfExists(param.thisObject.getClass(),"odm");
ListView mlv=(ListView) odm.get(param.thisObject);
Class<?> mlvSuperClass=mlv.getClass().getSuperclass();
// LogUtils.i(mlv.toString(), mlvSuperClass.toString());
XposedHelpers.findAndHookMethod(mlvSuperClass,
"setAdapter",
ListAdapter.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
final ListAdapter adapter=(ListAdapter) param.args[0];
// LogUtils.i(adapter.toString());
XposedHelpers.findAndHookMethod(adapter.getClass(),
"getView",
int.class,
View.class,
ViewGroup.class,
new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
// intposition=(int) param.args[0];
final View view=(View) param.args[1];
// ViewGroup viewGroup=(ViewGroup) param.args[2];
if(view !=null) {
//fl 第一個view是圖片 第二個view是朋友圈內容
final ViewGroup fl=(ViewGroup) view;
// StringBuffer sb=new StringBuffer();
// for(inti=0; i < fl.getChildCount(); i++) {
// sb.append(fl.getChildAt(i).toString());
// sb.append("@");
// sb.append(fl.getChildAt(i).getId());
// sb.append("@");
// sb.append(applicationContext.getResources().getResourceName(fl.getChildAt(i).getId()));
// sb.append("\n");
// }
// LogUtils.i(position, view, sb.toString(), viewGroup, JSON.toJSONString(adapter.getItem(position)), adapter.getItem(position).toString());
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
new AlertDialog.Builder(mActivity)
.setTitle("溫馨提示")
.setMessage("是否對當前訊息進行瘋狂點贊").setNegativeButton("是的", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,intwhich) {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
if(fl !=null && fl.getChildCount() >1) {
LinearLayout msgLinear=(LinearLayout) fl.getChildAt(1);
for(inti=0; i < msgLinear.getChildCount(); i++) {
View mc=msgLinear.getChildAt(i);
String resourceName=applicationContext.getResources().getResourceName(mc.getId());
if(mc instanceof TextView) {
// mc.setVisibility(View.VISIBLE);
// ((TextView) mc).append("看雪論壇,看雪論壇++,看雪論壇+++");
//因為有些gettext 得到的是spanned 調toString會引起shutdown 所以用以下方式列印即可
// LogUtils.i(((TextView) mc).getText());
}elseif(mc instanceof ViewStub) {
// ((ViewStub) mc).inflate();
}elseif("com.tencent.mm:id/de_".equals(resourceName)){
ViewGroup vg=(ViewGroup)mc;
mc.setVisibility(View.VISIBLE);
if(vg.getChildCount()>0){
TextView likeView=(TextView) vg.getChildAt(0);
likeView.append("看雪論壇,看雪論壇++,看雪論壇+++");
LogUtils.i(likeView.getCompoundDrawables());
}else{
TextView tv=new TextView(applicationContext);
tv.setText(",看雪論壇,看雪論壇++,看雪論壇+++");
tv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
vg.addView(tv);
}
}
// LogUtils.i(mc, resourceName,"com.tencent.mm:id/de_");
}
}
}
});
}
}).setNeutralButton("不是的", null).show();
returnfalse;
}
});
}
}
});
}
});
}
});
}
最終結果 如下圖
去掉註釋我把所有view都展示出來了,後面過濾註釋無用程式碼後只留下點贊欄目的view即可
這個只是做了ui效果,後面會進行資料庫儲存記錄,保證下次瀏覽到該條資訊能夠直接顯示點贊資料,並且儘可能實現從好友列表選擇點贊人
程式碼已上傳
原文連結:https://bbs.pediy.com/thread-226951.htm
本文由看雪論壇 KingZd 原創
轉載請註明來自看雪社群
相關文章
- Xposed第四課(微信篇) 朋友圈點贊(2)之好友列表2018-06-02
- 微擎 微贊 微盟 有贊 點點客微信介面對比哪個好2019-03-07
- 微信小程式--仿朋友圈Pro(內容釋出、點贊、評論、回覆評論)2021-01-05微信小程式
- 微信小程式實現點贊、取消點贊,和多項點選功能2018-11-25微信小程式
- 微信朋友圈2019-04-10
- 微信小程式第四篇 模板使用2018-08-07微信小程式
- 2019情人節發微信朋友圈說說 情人節發微信朋友圈情人節句子2019-02-14
- 2021微信公開課PRO最全亮點2021-01-19
- 微信小程式點贊、評論區域性重新整理2019-04-08微信小程式
- 實現高效能微信朋友圈2018-05-03
- 為女朋友朋友圈自拍點贊,幽默又深情的方法2024-05-09
- 微信收藏拼長圖發朋友圈教程 微信怎麼拼圖?2018-04-12
- L1-034 點贊 python2024-07-05Python
- Android輔助許可權之微信自動評論與點贊2019-01-21Android
- 2021微信公開課PRO最全亮點請收好2021-01-19
- 微信小助手2.9.0:專為mac微信3.1.2發行!支援發朋友圈!2021-07-04Mac
- 微信灰測朋友圈摺疊圖片功能2022-03-13
- 微信朋友圈發口令或被封號 微信永久封號新規是什麼?2018-05-21
- L1-034 點贊 分數 202024-08-02
- 用tp做的微信朋友圈熱門文章合集2019-05-11
- 微信圈圈 - 關於微信那點事2019-05-11
- 微信小程式——商城篇2018-06-05微信小程式
- 微贊劉永果:每個微信公號都能玩社群經濟2022-02-23
- ReactNative 聊天 App 實戰|RN 仿微信介面群聊|朋友圈2019-09-07ReactAPP
- 微信疑似推出朋友圈多內容摺疊功能HQT2022-03-19QT
- 模擬微信實現長按朋友圈圖片功能2018-11-03
- 2019情人節朋友圈說說大全:2.14情人節微信朋友圈說說句子推薦2019-02-14
- 顛覆傳統課堂想象,《光明日報》點贊有道精品課冠名節目2020-08-21
- 微信公眾號-- 微信分享功能(分享到朋友和朋友圈顯示圖片和簡介)2018-06-26
- 微信開發1 (接入微信)2018-04-08
- 微信小程式朋友圈分享圖片生成方案實現2019-03-03微信小程式
- html5仿微信朋友圈相簿圖片放大程式碼2018-07-26HTML
- 一個仿微信朋友圈的圖片檢視框架 - PhotoViewer2018-08-08框架View
- 別人都在認真聽課,我埋頭寫Python為主播瘋狂點點點點點贊!2022-02-07Python
- 這份深度學習課程筆記獲吳恩達點贊2018-03-22深度學習筆記吳恩達
- Android.Hook框架xposed篇(Http流量監控)2020-08-19AndroidHook框架HTTP
- 微信小程式實戰影片教程附原始碼課件與多個微信小程式原始碼 14課2018-07-06微信小程式原始碼
- 微信短劇小程式-uniapp篇2024-07-16APP