Anyview 本地版本
本帖最后由 正己 于 2022-2-9 17:07 编辑效果对比
修改过程:
1.本app未加固,直接AndroidKiller,搜索关键词"系统设置"
2.看到布局后,删除末尾两行<line........>
3.安装到模拟,app报错
4.根据报错指引,找到 XXX.AnyviewV2x及行数
5.有个for循环 从0-6 但实际 我们只需要 本地导入 wifi传书 系统设置功能 即0-2即可 xml改成如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center" android:orientation="vertical" android:background="@color/gray" android:layout_width="120.0dip" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/actionbar_import" android:background="@drawable/selector_actionbar" android:layout_width="fill_parent" android:layout_height="@dimen/main_page_actionbar_itemheight">
<ImageView android:id="@id/iv_icon0" android:paddingRight="10.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/actionbar_import" android:scaleType="center" />
<TextView android:textSize="@dimen/actionbar_viewflow_item_textsize" android:textColor="@color/white" android:id="@id/tv_title0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="本地导入" />
</LinearLayout>
<View android:background="@color/viewflow_divide_color" android:layout_width="fill_parent" android:layout_height="@dimen/line_width_two_px" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/actionbarr_wifi" android:background="@drawable/selector_actionbar" android:layout_width="fill_parent" android:layout_height="@dimen/main_page_actionbar_itemheight">
<ImageView android:id="@id/iv_icon1" android:paddingRight="10.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/actionbar_wifi" android:scaleType="center" />
<TextView android:textSize="@dimen/actionbar_viewflow_item_textsize" android:textColor="@color/white" android:id="@id/tv_title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="wifi传书" />
</LinearLayout>
<View android:background="@color/viewflow_divide_color" android:layout_width="fill_parent" android:layout_height="@dimen/line_width_two_px" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/actionbar_setting" android:background="@drawable/selector_actionbar" android:layout_width="fill_parent" android:layout_height="@dimen/main_page_actionbar_itemheight">
<ImageView android:id="@id/iv_icon2" android:paddingRight="10.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/actionbar_setting" android:scaleType="center" />
<TextView android:textSize="@dimen/actionbar_viewflow_item_textsize" android:textColor="@color/white" android:id="@id/tv_title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="系统设置" />
</LinearLayout>
</LinearLayout>
6.smali代码中 非本地导入 wifi传书 系统设置 删掉即可
.method private createPopupWindow(Landroid/view/View;)V
.locals 7
.param p1, "parent" # Landroid/view/View;
.prologue
const/4 v5, -0x2
.line 1507
iget-object v4, p0, Lcom/anyview/core/AnyviewV2x;->mPopupWindow:Landroid/widget/PopupWindow;
if-nez v4, :cond_0
.line 1508
new-instance v4, Landroid/widget/PopupWindow;
.line 1509
invoke-direct {v4, p1, v5, v5}, Landroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V
.line 1508
iput-object v4, p0, Lcom/anyview/core/AnyviewV2x;->mPopupWindow:Landroid/widget/PopupWindow;
.line 1510
iget-object v4, p0, Lcom/anyview/core/AnyviewV2x;->mPopupWindow:Landroid/widget/PopupWindow;
const/4 v5, 0x1
invoke-virtual {v4, v5}, Landroid/widget/PopupWindow;->setOutsideTouchable(Z)V
.line 1511
iget-object v4, p0, Lcom/anyview/core/AnyviewV2x;->mPopupWindow:Landroid/widget/PopupWindow;
new-instance v5, Landroid/graphics/drawable/ColorDrawable;
const/4 v6, 0x0
invoke-direct {v5, v6}, Landroid/graphics/drawable/ColorDrawable;-><init>(I)V
invoke-virtual {v4, v5}, Landroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
.line 1514
:cond_0
invoke-virtual {p0}, Lcom/anyview/core/AnyviewV2x;->getLayoutInflater()Landroid/view/LayoutInflater;
move-result-object v4
.line 1515
const v5, 0x7f030012
const/4 v6, 0x0
.line 1514
invoke-virtual {v4, v5, v6}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v0
.line 1516
.line 1518
.local v2, "tempView":Landroid/view/View;
const v4, 0x7f0900b1
invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v4
invoke-virtual {v4, p0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 1522
const v4, 0x7f0900bd
invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v4
invoke-virtual {v4, p0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 1526
const v4, 0x7f0900b7
invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v4
invoke-virtual {v4, p0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 1528
const/4 v1, 0x0
.local v1, "i":I
:goto_0
const/4 v4, 0x3
if-lt v1, v4, :cond_1
.line 1538
iget-object v4, p0, Lcom/anyview/core/AnyviewV2x;->mPopupWindow:Landroid/widget/PopupWindow;
invoke-virtual {v4, v0}, Landroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V
.line 1539
return-void
.line 1531
:cond_1
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "tv_title"
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
const-string v5, "id"
invoke-virtual {p0}, Lcom/anyview/core/AnyviewV2x;->getPackageName()Ljava/lang/String;
move-result-object v6
.line 1530
invoke-static {p0, v4, v5, v6}, Lcom/anyview/core/AppShelfAdapter;->getResourceId(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v4
invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v3
.line 1529
check-cast v3, Landroid/widget/TextView;
.line 1532
.local v3, "tv":Landroid/widget/TextView;
invoke-static {v3}, Lcom/anyview/res/SkinBuilder;->setTextViewColor(Landroid/widget/TextView;)V
.line 1534
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "iv_icon"
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1535
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
const-string v5, "id"
invoke-virtual {p0}, Lcom/anyview/core/AnyviewV2x;->getPackageName()Ljava/lang/String;
move-result-object v6
.line 1534
invoke-static {p0, v4, v5, v6}, Lcom/anyview/core/AppShelfAdapter;->getResourceId(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v4
invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;
move-result-object v4
.line 1533
check-cast v4, Landroid/widget/ImageView;
invoke-static {v4}, Lcom/anyview/res/SkinBuilder;->changeImageMode(Landroid/widget/ImageView;)V
.line 1528
add-int/lit8 v1, v1, 0x1
goto :goto_0
.end method
成品APP链接
https://wwi.lanzouw.com/iB1Rqzr8d0d
密码:52PJ 本帖最后由 ee789852 于 2022-2-10 16:01 编辑
Minister 发表于 2022-2-9 21:15
成品APP链接
https://wwi.lanzouw.com/iB1Rqzr8d0d
密码:52PJ
把联网权限给去掉了,就报错了
Network Type: 0
java.lang.SecurityException: Permission denied (missing INTERNET permission?)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:150)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
at java.net.InetAddress.getAllByName(InetAddress.java:1152)
at com.android.okhttp.Dns$1.lookup(Dns.java:41)
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178)
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144)
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:86)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:542)
at com.anyview.core.rec.RecActionUtils.get(RecActionUtils.java:135)
at com.anyview.core.rec.RecActionUtils.loadRec(RecActionUtils.java:84)
at com.anyview.core.TodayRecAdapter$2.run(TodayRecAdapter.java:104)
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
at libcore.io.Linux.android_getaddrinfo(Native Method)
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:200)
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:74)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:135)
... 17 more
Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied)
... 22 more 谢谢分享。。 谢谢分享 谢谢分享 还依稀记得我那超薄摩托罗拉上用anyview看书的样子 学习了 感谢分享~ 08年开始在Nokia上使用的神作。
如今作者没有时间维护了。
谢谢大佬调整{:1_921:} 好软件,想起以前用anyview看书的快乐时光,感谢分享 pansophy 发表于 2022-2-10 08:26
还依稀记得我那超薄摩托罗拉上用anyview看书的样子
{:301_997:} 啊哈 勾起了些许陈年往事 岁月如梭 在其他看书APP越来越臃肿的年代 anyview还能保持一份简约 愿你我守住内心的一隅纯真 恬静自然:keai