添加启动页

添加启动页#

2021/5/7

实验内容

1、为学号后一位同学编写一个简单app。

新建一个emptyactivity
在layout的activity_main.xml中添加如下代码
1    <LinearLayout
2        android:layout_width="match_parent"
3        android:layout_height="match_parent"
4        android:orientation="vertical">
5
6        <TextView
7            android:layout_width="wrap_content"
8            android:layout_height="wrap_content"
9            android:text="@string/str1"
10            android:textSize="40sp"/>
11
12        <ImageView
13            android:id="@+id/imageView"
14            android:layout_width="match_parent"
15            android:layout_height="wrap_content"
16            app:srcCompat="@drawable/back" />
17    </LinearLayout>
效果如下:添加了一个textview以及一个imageview

在这里插入图片描述

2、将学号前一位同学编写的app添加一个启动页,并在3秒后自动跳转到原先的启动页。

(1) 收到上一位同学发来的app-debug.apk
在cmd中使用以下指令
apktool d app-debug.apk -o ./decode -f
获取smail文件

在这里插入图片描述

从图中可以看出,包名是test9,com.example.test9,且其中只有一个MainActivity,且对应的ID为 0x7f0b001c

在这里插入图片描述

(2)根据这个apk创建一个新的项目,包名为test9(com.example.test9)

在这里插入图片描述

(3)新建empty activity fakelaunch 添加以下代码
final Intent intent=new Intent(fakelaunch.this,MainActivity.class);
        Timer timer=new Timer();
        TimerTask timerTask=new TimerTask() {
            @Override
            public void run() {
                startActivity(intent);
            }
        };
        timer.schedule(timerTask,3000);
    }
这里添加了一个timer,用它来进行等待3秒的操作
(4)在 /layout/activity_fakelaunch.xml中添加一个imageview,代码如下
<ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/back"
        tools:ignore="MissingConstraints" />
启动页效果如下:

在这里插入图片描述

(5)因为启动页为项目主页,所以要在AndroidManifest.xml中进行修改,修改代码如下:
        <activity android:name=".fakelaunch">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
        </activity>
上面的代码中 就是将运行程序后,看到的首页设置成fakelaunch,这样在最后的效果中,是先运行fakelaunch启动页,再等待3秒,跳转到mainactivity。
(6)使用apktool对该项目进行反编译,生成对应的decode文件夹

在这里插入图片描述

(7)把以下文件,复制替换到上一个同学apk反编译后的decode文件中

在这里插入图片描述

(8)在layout.smali添加以下代码,修改句末i的值与上面几个都不同即可

在这里插入图片描述

(9)将复制过来的fakelaunch修改v0编号与上面(8)中i的值一致

在这里插入图片描述

(10)找到启动页的xml,将其复制到目标文件夹中

在这里插入图片描述

(11)将androidmanifest.xml文件做以下修改,即把运行主页设置成fakelaunch

在这里插入图片描述

(12)插入自己的图片,重新反编译该项目,把图片文件back.png和layout相关文件重新复制进去即可,为了方便,比较两个文件夹中的内容,可以把缺少的都复制进去。

在这里插入图片描述

(13)接下来就是打包生成fake.apk,然后生成一个有效期100天的使用RSA算法的rsa.keystore文件,然后使用jarsigner将rsa.keystore和fake文件合成。因为在前两次作业中都有,就不再展示过程了。
(14)将fake.apk安装至模拟器,查看运行效果

在这里插入图片描述
在这里插入图片描述

可以看到已经成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值