項(xiàng)目上有個(gè)要求:能夠屏蔽底部導(dǎo)航欄!如下圖所示,很變態(tài)的需求是不是?淚奔中。。。。

image.png
因?yàn)楣臼亲鲇布?軟件配套的,用的是android定制版的系統(tǒng),有經(jīng)驗(yàn)的android開發(fā)工程師都知道,要實(shí)現(xiàn)這樣的一個(gè)功能,必須要修改底層,最后公司的android底層開發(fā)工程修改了底層,說直接使用系統(tǒng)本身的so庫,并且給我了一個(gè)文件:
public class PropOpt {
public static native String getprop(String name);
public static native int setprop(String name,String value);
static{
System.loadLibrary("propopt");
}
}
從文件中看到,確實(shí)是使用so庫,調(diào)用so庫里面的方法,必須要知道so里面的包名,要不然也使用不了這個(gè)功能。
詳細(xì)步驟如下:
- 使用cmd命名,進(jìn)入到android-sdk所在的盤符下

image.png
- 使用adb shell命令查看adb shell命令是否正常

image.png
不正常的情況下,可能會(huì)出現(xiàn):
1、

image.png
這個(gè)應(yīng)該是adb被占用了,可以使用命令:
netstat -ano查看哪個(gè)程序占用了5037端口,

image.png
接著輸入命令:
tasklist /fi "pid eq 0干掉這個(gè)應(yīng)用程序就可以了
2、

image.png
我個(gè)人覺得最靠譜的方法是把重新插幾下USB線就好了(針對(duì)情況1和2都成立)
- 使用adb root命令

image.png
- 查看系統(tǒng)的so庫

image.png
- 將所需要的so庫導(dǎo)出到本地

image.png
- 用記事本打開找到對(duì)應(yīng)的包名

image.png
- 在Android Studio 上引用對(duì)應(yīng)的so庫

image.png
ps:
adb 命名是adb工具本身的命令,而adb shell命令試android 中的命令