前段时间听歌使用的应用,发先这效果的,有点像在pc上桌面歌词一样,于是就准备研究研究,今天我把我研究的思路也跟他家说下。
首先要准备几样东西:
1)apktool
2)文本编辑器(geany)
准备好以上工具后我们开始工作:
1> "apktool d ttpod.apk /home/ffly" 使用前面的命令吧*.dex反编译成smali
2> 分析歌词显示效果,貌似就是在当前界面上添加了一个显示歌词的控件,是不是有点类似Toast呢?
3>既然是添加上去的,那么我们根据这个来试下在smali里面是不是会有个addview方法呢?我们去查找一下(使用geany)
查找结果如下:
FloatWindow.smali 文件 763行 handleShow()方法里面
invoke-interface {v1, v2, v0}, Landroid/view/WindowManager;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
从结果上可以看出这里使用的是WindowManager.addView(View view,ViewGroup.LayoutParams params);
好,现在我们知道是怎么添加上去的,那么我们现在就开始寻找所需要的参数吧,千万别看到现在就以为OK了哦,好戏还在后面 哈哈。
4>我们继续查看handleShow()方法找到传进去的参数,我找到如下方法被掉用:
FloatWindow.smali 文件 705行 handleShow()方法里面
invoke-direct {p0}, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->createLayout()Landroid/view/WindowManager$LayoutParams;
move-result-object v0
从上面看出来,参数是从createLayout()方法的返回值(WindowManager.LayoutParams)
=====================================================
.method private createLayout()Landroid/view/WindowManager$LayoutParams;
.locals 3
.prologue
.line 240
new-instance v0, Landroid/view/WindowManager$LayoutParams;
invoke-direct {v0}, Landroid/view/WindowManager$LayoutParams;-><init>()V
.line 242
.local v0, p:Landroid/view/WindowManager$LayoutParams;
const/16 v1, 0x53
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->gravity:I
.line 243
iget v1, p0, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->mWidth:I
iput v1, p0, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->mLastWidth:I
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->width:I
.line 244
iget v1, p0, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->mHeight:I
iput v1, p0, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->mLastHeight:I
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->height:I
.line 246
const/4 v1, -0x3
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->format:I
.line 248
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I
invoke-direct {p0, v1}, Lcom/sds/android/ttpod/extend/minilyric/FloatWindow;->computeFlags(I)I
move-result v1
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I
.line 249
const/16 v1, 0x7d3
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->type:I
.line 250
const/4 v1, 0x0
iput-object v1, v0, Landroid/view/WindowManager$LayoutParams;->token:Landroid/os/IBinder;
.line 251
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "FloatWindow:"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I
move-result v2
invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
.line 253
return-object v0
.end method
===============================================================
上面就是我们找到的方法了,只要吧相应的参数设置好就OK,否则是看不到效果的哦,具体解释我就不说了,我直接提供源码给大家,倒是后自己对照这看 呵呵。
5>说到这也就差不多完成了,大家还记得我前面提到的Toast吗?呵呵,有兴趣自己看下Toast源码,你就能着到这个效果了.
分享到:
相关推荐
TTPod_j2me_v1.1.0.jad
ttpod 在线web播放器 音源来自ttpod官网 2015-3-23 23:16 更新歌词同步
美化状态栏图标,桌面插件全透明,插件 U I为 WP 8 风格 .屏蔽设置界面相关选项 .启动界面美化,超炫真实舞台效果 .自定义唯美播放器风景(更新自带所有背景) .重绘新Logo (非官方的扁平化Logo) * 解决了5.9.0731...
ttpod_s60v3x_v3.3.0.sisx (下载签名后的 sisx 文件) (检测安全性) (华丽的界面)
一款实用的手机播放器,支持歌词显示,自动下载,一款手机上的千千静听
适合java版手机用户,资源所需内存比较小。
歌词X LyricsX是iTunes,Spotify和Vox的插件,可以从Internet自动搜索和下载当前播放的歌词,并将其显示在桌面和菜单栏中。 处于早期开发阶段。安装LyricsX在Mac App Store上可用。要求macOS 10.11以上特征与iTunes...
专业的手机音乐播放器软件 天天动听 s60v2_v3.63适合智能手机 适用于塞班 欢迎下载
#TTPOD REST CoC理念的一套HTTP JSON API框架,基于SpringMVC和Groovy,内置了MongoDB CRUD模版(JSON和MongoDB天然好基友)!!概述用Groovy编写您的控制器 @Restclass MyController extends ControllerSupport7 { ...
TTPOD RPC ToDo Overview Thanks 感谢 BlueDavy 大神的 nfs-rpc 感谢 多隆 大神的建议 Netty + Protobuf 感谢 阿里开源的Dubbo
天天动听S60v3音乐播放器
诺基亚手机通话录音,5230试用通过,其它款手机还没有试,但只要是S60V5版以上软件均持
5、支持根据歌曲信息自动下载LRC歌词,支持LRC歌词预览,目前支持的歌词服务器:千千静听、TTPod、虾米、QQ音乐。 6、支持播放列表内、音乐库内搜索。 7、支持无缝语言切换:不用重新启动应用进行全局语言切换。 ...
包含天天动听六种精美皮肤及二十种可视化效果,支持天天动听最新4.0版
TTPod_7.5.1-NOAD_TRSPRT.apk 天天播放器破解版
资源evire work download Micro_tool Programe ludashi tecent 360 baidu TTPod WPS Office
她们中有的功能强大,比如国产的推荐用天天动听(TTpod),什么歌词下载,均衡器,音质也OK。 但是,与此相反,有的就不怎么样,其中就有一款红极一时的powerAMP,该软件以其所谓的“出色音效”著称,可是我用了不...
TTPod_s60v5_v3.71.SISx UCDesk-2.0.4.28-600-602-11011409.sisx UCMobile-7.2.2.63-999-1001-10101314.sisx UCPlayer-2.3.1.13-700-709-11010610.sisx UCWEB-7.6.0.75-999-50-11012618.sisx ucxunlei-1.3.0.1-9000-...
lenovo td30t可替换 音乐随身听的天天动听1.1.0 保证可用