获取APK的targetSdkVersion及minSdkVersion

1.使用aapt工具:

    aapt list -a app.apk | grep SdkVersion
显示的结果为16进制

或:
      aapt dump badging app.apk|grep Version

2.使用apktool:

      java -jar apktool.jar d app.apk

然后查看生成的apktool.yml文件的sdkInfo字段即可

Cocos安卓下显示状态栏

1.修改AndroidManifest.xml

将:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
改为:
android:theme="@android:style/Theme.NoTitleBar"

2.修改onCreate中

加入:

getWindow().addFlags(WindowManager.LayoutParams.FLAGFORCENOTFULLSCREEN|WindowManager.LayoutParams.FLAGTRANSLUCENT_STATUS);

注释掉:

//getWindow().setFlags(WindowManager.LayoutParams.FLAGFULLSCREEN, WindowManager.LayoutParams.FLAGFULLSCREEN);

注意!如果用以上代码设置了全屏一定要注释掉,不然会和显示状态栏冲突,导致在使用编辑框调出键盘再收起时出现布局没有下移的问题

3.使用View类提供的setSystemUiVisibility对状态栏做动态显示或隐藏的操作


常用属性标志:

  • SYSTEMUIFLAGLOWPROFILE:状态栏处于低能显示状态,一些图标显示会被隐藏

  • SYSTEMUIFLAGHIDENAVIGATION:隐藏虚拟按键(导航栏),有些手机会用虚拟按键来代替物理按键,用户点击屏幕会显示导航栏

  • SYSTEMUIFLAG_FULLSCREEN:Activity全屏显示,隐藏状态栏

  • SYSTEMUIFLAGLAYOUTHIDE_NAVIGATION:拓展布局到导航栏后面

  • SYSTEMUIFLAGLAYOUTFULLSCREEN:拓展布局到状态栏后面

  • SYSTEMUIFLAGLAYOUTSTABLE:稳定的布局,不会随系统栏的隐藏、显示而变化

  • SYSTEMUIFLAG_IMMERSIVE:沉浸模式,用户可以交互的界面

  • SYSTEMUIFLAGIMMERSIVESTICKY:沉浸模式,用户可以交互的界面。同时,用户上下拉系统栏时,会自动隐藏系统栏

  • SYSTEMUIFLAG_VISIBLE:显示状态栏,Activity不全屏显示,恢复到有状态的正常情况

  • INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示

显示全屏:

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

不显示全屏:

    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    );