创建releaseAPK
学习目标:编译出release版本的apk创建证书
选择apk
选择Create new…
填写信息
Key store path : 签名文件路径Password : 签名密码Confirm : 确认密码Alias : 别名Validity ( years ) : 有限期 (年)First and Last Name : 全名Organizational Unit : 组织单位Organization : 组织City or Locality : 城市或地方State or Province : 州或省Country Code(XX) : 国家代码
将Build Variants改成release
配置Project Structure相关信息
配置Signing Configs
创建完了以后点击ok或者apply
应用点击Build Variants,使用刚刚配置的Signing Configs
点击ok或者apply
最后再在Build -> Generate…..进行创建release 版本的apk
Android基本控件使用
学习目标:掌握Button、Log、Toast、EditText的几种常见使用方式Button方式一:直接在布局文件当中添加<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Mai ...
AndroidStudio工程目录结构
学习目标:了解AndroidStudio工程目录结构gradle -> wrapper -> gradle-wrapper.properties配置项目gradle版本
build.gradle描述工程整体的编译规则
gradle.propertiesgradle配置文件,一般无须改动
local.properties本机环境配置,SDK、NDK路径等,一般无需改动
setteings.gradle配置哪些模块在一起编译
include ':app' 只编译app
app -> build.gradle描述当前模块的编译规则
plugins { id 'com.android.application'}android { //指定编译用的SDK版本号 compileSdkVersion 30 //指定编译工具的版本号,开头两位数字必须与compileSdkVersion一致。具体版本号可在sdk安装目录 SDK\build-tools 下找到 buildToolsV ...
Android常见目录
学习目标:了解安卓常见目录data/data目录
存放用户app数据的目录,每个app都有自己的目录,以包名命名
这是一个私有目录,app只能访问各自的目录,除非root权限
该目录下的文件,要pull到电脑上来,通常先拷贝到sdcard目录
data/app目录
用户安卓的app存放在这个目录下
data/local/tmp
临时目录,权限比较大
system/app目录
存放系统自带的app
system/lib、system/lib64目录
存放app用到的系统so文件
system/bin目录
存放shell命令
sd卡目录
不管手机有没有存储卡都会有这个目录
app操作sdka目录需要申请权限,不同系统版本要求不同
访问以下几个目录效果都一样
/sdcard -> /storage/self/primary/mnt/sdcard/storage/emulated/0
Linux权限
学习目标:了解Linux权限ls -l 显示的内容lrwxrexrwx 1 root root 8 May 29 04:09 sbin -> usr/bin
权限第0位确定文件类型
-是普通文件
l是链接,后面会用 -> 打印出指向的真实文件路径
d是目录,相当于windows的文件夹
c是设备文件,鼠标,键盘,/dev
第1-3位确定所有者拥有该文件的权限
第4-6位确定所属组拥有该文件的权限
第7-9位确定其他用户组拥有该文件的权限
权限表示方式rwx代表可读可写可执行,-代表没有权限
权限还可以用数字来表示,r=4,w=2,x=1
目录和文件都是有权限的,操作目录和文件都需要有对应的权限才能操作
其他说明lrwxrexrwx 1 root root 8 May 29 04:09 sbin -> usr/bin
root 用户
root 组
8 文件大小(字节):如果是文件夹,显示4096字节;如果是软链接,显示指向的真实文件路径字节数
May 29 04:09 最后修改日期
sbin 文件名/软链接名
- ...
Android查看包名的几种方式
学习目标:学会查看app报名的几种方法反编译查看清单文件使用反编译工具如jadx,GDA,jeb等工具查看
通过shell命令获取包名和入口类名使用以下命令时,要先进入手机shell
dumpsys window windows | grep mFocusedAppdumpsys window windows | grep mCurrentFoucsdumpsys window | grep mCurrentFocus
grep是Linux中的命令,所以要进入shell才可以使用
在我的设备中,只有
dumpsys window | grep mCurrentFoucs
可以使用
还有一组命令,直接在windows命令行中使用
adb shell dumpsys window windows | findstr mFoucsedAppadb shell dumpsys window windows | findstr mCurrentFocusadb shell dumpsys window | findstr mCurrentFocus
同样只有
adb shell dumps ...
adb与Linux常用命令
学习目标:学会使用adb与Linux的常见命令以及logcat的使用方法adbadb的作用
可以方便的在电脑端通过命令操控手机
很多手机自动化指令也是通过adb来实现的
adb的构成
client端,在电脑上,负责发送adb命令
daemon守护进程(adbd),在手机上,负责接收和执行adb命令
server端,在电脑上,负责管理client和daemon之间的通讯
adb工作原理
client端将命令发送给server端
serever端会将命令发送给daemon端
将执行结果返回给server端
server端将结果再返回给client端
adb常用命令adb/ adb help/ adb --help 查看adb帮助文档adb version 显示adb版本和路径adb devices 显示连接的设备列表adb install xxx.apk 通过adb安装appadb install -r xxx.apk 覆盖安装adb uninstall 包名 通过adb卸载appadb push xxx xxx 推送电脑的文件到手机adb pull xxx 拉取手机 ...
bp
跳台阶一个楼梯共有 nn 级台阶,每次可以走一级或者两级,问从第 00 级台阶走到第 nn 级台阶一共有多少种方案。
输入格式共一行,包含一个整数 nn。
输出格式共一行,包含一个整数,表示方案数。
数据范围1≤n≤151≤n≤15
输入样例:5
输出样例:8
#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; int temp1=1, temp2=2, newF=0; for(int i=3; i<=n; i++){ newF=temp1+temp2; temp1=temp2; temp2=newF; } cout<<newF; return 0;}
记忆化搜索
#include<bits/stdc++.h>using namespace std;const int N=20;int dfs(i ...
32位汇编
基本框架include irvine32.inc.data.codemain procexitmain endpend main
定义变量定义int型数组和变量c语言写法:
int chess[8][8]={0};int a[8],b[15],c[15];int sum=0;
汇编写法:(dd(Define Double Word)用来定义 32 位(4 个字节)的数据)
include irvine32.inc.data chess dd 64 dup(0) a dd 8 dup(0) b dd 15 dup(0) c dd 15 dup(0) sum dd 0 str1 db "八皇后摆法总数:", 0 str2 db "第", 0 str3 db "种可能摆法:", 0 str4 db " ", 0 str5 db "按回车键继续...", 0
基本指令rep stosdmov eax, 0xFFFFFFFF ; 将EAX设置为要存储的值mov edi ...
Pxile6的刷机与Root
学习目标:Root Piexl6刷机预备知识刷机的分类
线刷 官方包(刷的比较彻底,可以刷bootloader、radio)
卡刷 lineage os(双清)
刷机包的分类
线刷包/工厂镜像包
OTA全量包/OTA增量包
谷歌手机工厂镜像 https://developers.google.com/android/images?hl=zh-cn
线刷包的组成
bootloader
radio
android系统
官方系统与aosp系统区别
官方系统有google全家桶,aosp系统默认是没有的,需要另外集成
官方系统是user版本,aops系统可以是user、userdebug或eng,现在一般都使用user版本
联系
不管是官方系统还是aosp系统,刷机步骤都是一样的
开启开发者选项进入到设置 -> 关于手机 -> 点击7次版本号
开启usb调试进入到设置 -> 系统 -> 开发者选项 -> 启用USB调试 -> 信任设备
adb的简单使用首先要将adb添加到环境变量中
adb devices 查看电脑连接 ...