当前位置:   article > 正文

添加启动页_android添加安卓启动页

android添加安卓启动页

添加启动页#

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
效果如下:添加了一个textview以及一个imageview

在这里插入图片描述

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

(1) 收到上一位同学发来的app-debug.apk
在cmd中使用以下指令
apktool d app-debug.apk -o ./decode -f
  • 1
获取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);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
这里添加了一个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" />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
启动页效果如下:

在这里插入图片描述

(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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
上面的代码中 就是将运行程序后,看到的首页设置成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安装至模拟器,查看运行效果

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

可以看到已经成功
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/144665
推荐阅读