IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 安卓逆向学习记录_0 -> 正文阅读

[移动开发]安卓逆向学习记录_0

一、Android Studio下载安装

下载地址:https://developer.android.google.cn/

安装过程中会需要进行额外下载,请事先准备好“梯子”

二、新建项目

初学阶段按照下面步骤来:

1、Create New Project

2、选择Empty Activity

3、填写项目相关信息

项目名称、包名、选择开发语言(Java、Kotlin) 、SDK支持(不同SDK的安卓系统市场占有量不同)

4、Android Studio生成空项目

Android Studio生成的空项目代码如下:

三、动手设计UI并添加代码

activity_main.xml:UI设计的配置文件

MainActivity.java:java代码文件

res/drawable:项目图片资源放在这个位置下

?1、UI代码如下:

    <TextView
        android:id="@+id/textView"
        android:layout_width="144dp"
        android:layout_height="0dp"
        android:layout_marginStart="44dp"
        android:layout_marginLeft="44dp"
        android:layout_marginTop="32dp"
        android:layout_marginBottom="12dp"
        android:text="Quantity"
        android:textAllCaps="true"
        app:layout_constraintBottom_toTopOf="@+id/button2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button2"
        android:layout_width="58dp"
        android:layout_height="0dp"
        android:layout_marginBottom="90dp"
        android:onClick="increment"
        android:text="+"
        app:layout_constraintBottom_toTopOf="@+id/button3"
        app:layout_constraintStart_toStartOf="@+id/textView"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_marginStart="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="96dp"
        android:text="1"
        android:textColor="@color/black"
        app:layout_constraintStart_toStartOf="@+id/textView"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <Button
        android:id="@+id/button3"
        android:layout_width="61dp"
        android:layout_height="0dp"
        android:layout_marginBottom="314dp"
        android:onClick="decrement"
        android:text="-"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintStart_toStartOf="@+id/textView2"
        app:layout_constraintTop_toBottomOf="@+id/button2" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="142dp"
        android:layout_height="56dp"
        android:layout_marginStart="48dp"
        android:layout_marginLeft="48dp"
        android:layout_marginTop="136dp"
        android:text="Price"
        android:textAllCaps="true"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="87dp"
        android:layout_height="43dp"
        android:layout_marginStart="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="44dp"
        android:text="¥5"
        android:textColor="@color/black"
        app:layout_constraintStart_toStartOf="@+id/textView3"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="52dp"
        android:layout_marginLeft="52dp"
        android:layout_marginBottom="61dp"
        android:onClick="submitOrder"
        android:text="Order"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button3" />

2、java代码如下:

package com.example.coffee;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    public void increment(View view)
    {
        int quantity=0;
        TextView quantityTextView=(TextView)findViewById(R.id.textView2);
        quantity=Integer.parseInt(quantityTextView.getText().toString());
        display(quantity+1);
    }
    public void decrement(View view)
    {
        int quantity=0;
        TextView quantityTextView=(TextView)findViewById(R.id.textView2);
        quantity=Integer.parseInt(quantityTextView.getText().toString());
        if(quantity-1==0)
        {   display(1); }
        else
        {   display(quantity - 1); }
    }
    private void display(int number)
    {
        TextView quantityTextView=(TextView)findViewById(R.id.textView2);
        quantityTextView.setText(""+number);
    }
    public void submitOrder(View view)
    {
        int number=0;
        TextView quantityTextView=(TextView)findViewById(R.id.textView2);
        number=Integer.parseInt(quantityTextView.getText().toString());
        displayPrice(number*5);
    }
    private void displayPrice(int Price)
    {
        TextView priceTextView=(TextView)findViewById(R.id.textView4);
        if(Price==0)
        {   priceTextView.setText("¥5"); }
        else
        {   priceTextView.setText("¥"+Price); }
    }
}

四、运行程序

点击绿色小按钮,在Android Studio自带的模拟器中运行程序

点击+ - order按钮,确认程序正常运行

五、找到生成的APK文件

六、开始对 APK文件逆向

1、更改APK后缀为zip,保存里面的文件

2、转换classes.dex文件为jar文件

命令:d2j-dex2jar.bat? classes.dex?

3、使用jd-gui工具打开classes-dex2jar.jar文件?

和我们写的java代码是不是很相似:?

?七、安卓项目的图片位置

另外一个项目用到了一张图片:

?在res/drawable目录下可以找到对应的图片:

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:37:31  更:2021-08-01 14:38:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 5:23:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码