如何查看并且使用android系统本身包含的so库?

项目上有个要求:能够屏蔽底部导航栏!如下图所示,很变态的需求是不是?泪奔中。。。。

《如何查看并且使用android系统本身包含的so库?》 image.png

因为公司是做硬件+软件配套的,用的是android定制版的系统,有经验的android开发工程师都知道,要实现这样的一个功能,必须要修改底层,最后公司的android底层开发工程修改了底层,说直接使用系统本身的so库,并且给我了一个文件:

public class PropOpt {

    public static native String getprop(String name);
    public static native int setprop(String name,String value);
    static{
        System.loadLibrary("propopt");
    }

}

从文件中看到,确实是使用so库,调用so库里面的方法,必须要知道so里面的包名,要不然也使用不了这个功能。

详细步骤如下:

  • 使用cmd命名,进入到android-sdk所在的盘符下

《如何查看并且使用android系统本身包含的so库?》 image.png

  • 使用adb shell命令查看adb shell命令是否正常

《如何查看并且使用android系统本身包含的so库?》 image.png

不正常的情况下,可能会出现:
1、

《如何查看并且使用android系统本身包含的so库?》 image.png

这个应该是adb被占用了,可以使用命令:

netstat -ano

查看哪个程序占用了5037端口,

《如何查看并且使用android系统本身包含的so库?》 image.png

接着输入命令:

tasklist /fi "pid eq 0

干掉这个应用程序就可以了

2、

《如何查看并且使用android系统本身包含的so库?》 image.png

我个人觉得最靠谱的方法是把重新插几下USB线就好了(针对情况1和2都成立)

  • 使用adb root命令

《如何查看并且使用android系统本身包含的so库?》 image.png

  • 查看系统的so库

《如何查看并且使用android系统本身包含的so库?》 image.png

  • 将所需要的so库导出到本地

《如何查看并且使用android系统本身包含的so库?》 image.png

  • 用记事本打开找到对应的包名

《如何查看并且使用android系统本身包含的so库?》 image.png

  • 在Android Studio 上引用对应的so库

《如何查看并且使用android系统本身包含的so库?》 image.png

ps:
adb 命名是adb工具本身的命令,而adb shell命令试android 中的命令

    原文作者:追梦小乐
    原文地址: https://www.jianshu.com/p/5e023eef941b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞