【0-3】安卓逆向-安卓开发(随时更新)

开发知识

这篇文章按照时间顺序记录学习安卓逆向过程中遇到的开发知识。

资源使用

安卓开发-资源使用-视频教程
安卓开发-资源使用-视频教程

R.java

Android studio中,R.java所在目录为:app/build/generated/source/r/arm/debug/com.example.dfanghu.myapplication/R.java

R.java文件是编译器自动生成的,R.java会自动收录当前应用中所有的资源,并根据这些资源建立对应的ID

从表面上看,是ADT根据res目录中的资源自动生成R.java文件的,但实际上,ADT是通过aapt(Android Asset Packaging Tool )命令来生成R.java文件的。aapt.exe文件(Mac OS X和Linux的相应命令也叫aapt,但没有文件扩展名)位于<Android SDK安装目录>/platform-tools目录中。如果想手工生成R.java文件,可以在Windows控制台中输入如下的命令。

as开发过程中新增的资源在bulid后更新到r.java中。

方法

trim

在这里插入图片描述

使用Java的MessageDigest实现MD5加密算法

  • getInstance:返回实现指定摘要算法的MessageDigest对象
  • reset:任何时候都可以调用reset() 方法重置摘要
  • update:更新摘要(MessageDigest对象在开始时会)被初始化,对象通过调用update() 方法处理数据
  • digest:调用digest() 方法完成Hash计算
    在这里插入图片描述

toHexString

转为十六进制

String s1 = Integer.toHexString(bytes[i$] & 0xFF);

postDelayed

使用Handler的postDelayed()方法实现延时操作

Handler handler=new Handler();
Runnable runnable=new Runnable(){
   @Override
   public void run() {
     //这里写入要作的事情
    handler.postDelayed(this, 2000);
   }
};
handler.postDelayed(runnable, 2000);

currentTimeMillis

System.currentTimeMillis()显示当前系统时间,单位毫秒,从1970年1.1日开始

java

修饰符

在这里插入图片描述
static 修饰符
静态变量:

static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。

静态方法:

static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

public class InstanceCounter {
   private static int numInstances = 0;
   protected static int getCount() {
      return numInstances;
   }
 
   private static void addInstance() {
      numInstances++;
   }
 
   InstanceCounter() {
      InstanceCounter.addInstance();
   }
 
   public static void main(String[] arguments) {
      System.out.println("Starting with " +
      InstanceCounter.getCount() + " instances");
      for (int i = 0; i < 500; ++i){
         new InstanceCounter();
          }
      System.out.println("Created " +
      InstanceCounter.getCount() + " instances");
   }
}
//Starting with 0 instances
//Created 500 instances

应用权限

01、Android自身拥有的权限
通过元素<manifest…>添加<users-permission…>子元素
例如:在<manifest…/>元素里添加如下代码:

<调用Android系统中打电话的权限>

02、Android调用自身所需的权限
通过系统应用的各组件元素,<activity…/>元素添加<users-permission…>子元素。

例如:在<activity…/>元素里添加如下代码:

<声明Android系统中打电话的权限>

在android应用系统中,提供了大量的应用权限,这些权限基本上都位于Manifest.permission类中。下列是android中比较常用的应用权限,如下图所示:

权限权限解释说明
ACCESS_NETWORK_STATE允许获取网络状态信息权限
ACCESS_WIFI_STATE允许获取WiFi网络状态信息权限
BATTERY_STATS允许获取电池状态信息权限
BLUETOOTH允许获取匹配的蓝牙设备权限
BLUETOOTH_ADMIN允许获取发现匹配的蓝牙设备权限
BROADCAST_SMS允许广播收到短信提醒的权限
CALL_PHONE允许拨打电话的权限
CAMERA允许使用照相机的权限
CHANGE_NETWORK_STATE允许改变网络连接状态的权限
CHANGE_WIFI_STATE允许WiFi网络连接状态的权限
DELETE_CACHE_FILES允许删除缓存文件权限
DELETE_PACKAGES允许删除安装包权限
FLASHLIGHT允许访问闪光灯的权限
INTERNET允许打开socket的权限
MOODIFY_AUDIO_SETTINGS允许修改全局声音设置的权限
PROCESS_OUTGOING_CALLS允许监听、控制、取消呼出电话的权限
READ_CONTACTS允许读取用户的联系人数据的权限
READ_HISTORY_BOOKMARKS允许读取历史书签的权限
READ_OWNER_DATA允许读取用户数据的权限
READ_PHONE_STATE允许读取电话状态的权限
READ_PHONE_SMS允许读取短信的权限
REBOOT允许重启系统的权限
RECEIVE_MMS允许接收、监控、处理彩信的权限
RECEIVE_SMS允许接收、监控、处理短信的权限
RECORD_AUDIO允许录音的权限
SEND_SMS允许发送短信的权限
SET_ORIENTATION允许旋转屏幕的权限
SET_TIME允许设置时间的权限
SET_TIME_ZONE允许设置时区的权限
SET_WALLPAPER允许设置桌面壁纸的权限
VIBRATE允许访问振动器的权限
WRITE_CONTACTS允许写入用户联系人的权限
WRITE_HISTORY_BOOKMARKS允许写历史书签的权限
WRITE_OWNER_DATA允许用户数据的权限
WRITE_SMS允许写短信的权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值