《Buildozer打包实战指南》第六节 buildozer.spec配置文件中的其他参数

Posted la_vie_est_belle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Buildozer打包实战指南》第六节 buildozer.spec配置文件中的其他参数相关的知识,希望对你有一定的参考价值。

目录

android.permissions

android.features

android.api

android.minapi

android.sdk

android.ndk

android.ndk_api

android.private_storage  

android.ndk_path

android.sdk_path

android.ant_path

android.skip_update

android.accept_sdk_license

android.apptheme 

android.wakelock

android.archs

android.allow_backup

android.backup_rules

android.no-compile-pyo

android.release_artifact

android.debug_artifact

log_level

build_dir

bin_dir


在第四节,笔者介绍了buildozer.spec配置文件中的一些常见参数。在本节,我们再来了解下该配置文件中其他一些参数,好让我们更深入了解buildozer.spec的作用。

android.permissions

该参数用来获取权限,有Normal Permissions(对用户隐私没有风险)和Dangerous permissions(需要涉及用户私人信息数据)两种权限区分。以下表格罗列了Normal Permissions的各个权限名称。

注:如果代码中涉及到了网络请求,比如使用了requests库,那必须要开启INTERNET权限,否则会报错。

权限名解释
ACCESS_LOCATION_EXTRA_COMMANDS允许程序访问额外的定位提供者指令
ACCESS_NETWORK_STATE允许程序获取网络信息状态,如当前的网络连接是否有效
ACCESS_NOTIFICATION_POLICY通知APP通知显示在状态栏
ACCESS_WIFI_STATE允许程序获取当前WiFi接入的状态以及WLAN热点的信息
BLUETOOTH允许程序连接配对过的蓝牙设备
BLUETOOTH_ADMIN允许程序进行发现和配对新的蓝牙设备
BROADCAST_STICKY允许程序收到广播后快速收到下一个广播
CHANGE_NETWORK_STATE允许程序改变网络状态,如是否联网
CHANGE_WIFI_MULTICAST_STATE允许程序改变WiFi多播状态
CHANGE_WIFI_STATE允许程序改变WiFi状态
DISABLE_KEYGUARD允许程序禁用键盘锁
EXPAND_STATUS_BAR允许程序扩展或收缩状态栏
GET_PACKAGE_SIZE允许程序获取应用的文件大小
INSTALL_SHORTCUT创建快捷方式
INTERNET允许程序访问网络连接,可能产生GPRS流量
KILL_BACKGROUND_PROCESSES允许程序调用killBackgroundProcesses(String).方法结束后台进程
MANAGE_OWN_CALLS允许通过自我管理的ConnectionService API管理自己的调用的调用应用程序
MODIFY_AUDIO_SETTINGS允许程序修改声音设置信息
NFC允许程序执行NFC近距离通讯操作,用于移动支持
READ_SYNC_SETTINGS允许程序读取同步设置,读取Google在线同步设置
READ_SYNC_STATS允许程序读取同步状态,获得Google在线同步状态
RECEIVE_BOOT_COMPLETED允许程序开机自动运行
REORDER_TASKS允许程序重新排序系统Z轴运行中的任务
REQUEST_COMPANION_RUN_IN_BACKGROUND允许伴随应用在后台运行
REQUEST_COMPANION_USE_DATA_IN_BACKGROUND允许伴随应用在后台使用数据
REQUEST_DELETE_PACKAGES允许应用程序请求删除软件包
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS应用程序必须拥有该权限才能使用ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
SET_ALARM允许程序设置闹铃提醒
SET_WALLPAPER允许程序设置桌面壁纸
SET_WALLPAPER_HINTS允许程序设置壁纸建议
TRANSMIT_IR允许使用设备的红外发射器
USE_FINGERPRINT允许应用使用指纹硬件
VIBRATE允许程序振动
WAKE_LOCK允许程序在手机屏幕关闭后后台进程仍然运行
WRITE_SYNC_SETTINGS写入Google在线同步设置

以下表格罗列了Dangerous Permissions的各个权限名称。

权限名解释
READ_CALENDAR允许程序读取用户的日程信息
WRITE_CALENDAR允许程序写入日程,但不可读取
CAMERA允许程序访问摄像头进行拍照
READ_CONTACTS允许程序访问联系人通讯录信息
WRITE_CONTACTS允许程序写入联系人,但不可读取
GET_ACCOUNTS允许程序访问账户Gmail列表
ACCESS_FINE_LOCATION允许程序通过GPS芯片接收卫星的定位信息
ACCESS_COARSE_LOCATION允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息
RECORD_AUDIO允许程序录制声音通过手机或耳机的麦克
READ_PHONE_STATE允许程序访问电话状态
READ_PHONE_NUMBERS允许程序读取设备的电话号码
CALL_PHONE允许程序从非系统拨号器里拨打电话
ANSWER_PHONE_CALLS允许程序接听来电
READ_CALL_LOG允许程序读取通话记录
WRITE_CALL_LOG允许程序写入(但是不能读)用户的联系人数据
ADD_VOICEMAIL允许程序添加语音邮件系统
USE_SIP允许程序使用SIP视频服务
PROCESS_OUTGOING_CALLS允许程序监视,修改或放弃播出电话
BODY_SENSORS允许应用程序访问用户用来测量身体内部情况的传感器数据,例如心率
SEND_SMS允许程序发送短信
RECEIVE_SMS允许程序接收短信
READ_SMS允许程序读取短信内容
RECEIVE_WAP_PUSH允许程序接收WAP PUSH信息
RECEIVE_MMS允许程序接收彩信
READ_EXTERNAL_STORAGE允许程序可以读取设备外部存储空间
WRITE_EXTERNAL_STORAGE允许程序写入外部存储,如SD卡上写文件

android.features

我们可以使用adb罗列安卓设备的特性(feature),比如笔者这里是用夜神模拟器自带的adb,罗列出了所有特性。命令如下所示:

adb shell pm list features

 注:如果还不了解adb的使用方法,可以阅读下第五节。

android.api

设置打包所使用的安卓api版本。

android.minapi

设置最低安卓api版本,低于这个值的安卓手机将无法运行打包出来的apk。

android.sdk

设置SDK版本。

android.ndk

设置NDK版本。

android.ndk_api

设置使用的NDK API版本,跟android.minapi的值一样。

android.private_storage  

如果设置为True,则表明打包生成的应用在手机上会有一块私有存储空间。Android把外存储分为两块区域,一块是所有应用均可访问的公共空间,另一块是只有应用自己才可访问的私有空间。私有空间只有当前应用才能够读写文件,其他应用不允许进行读写。

android.ndk_path

设置NDK的路径。如果读者的电脑上已经有NDK了,那可以设置这个参数,这样Buildozer就不会再去下载了。当然Buildozer如果已经下载过一次,那之后打包时也不会再去下载的。

android.sdk_path

设置SDK的路径。如果读者的电脑上已经有SDK了,那可以设置这个参数,这样Buildozer就不会再去下载了。当然Buildozer如果已经下载过一次,那之后打包时也不会再去下载的。

android.ant_path

设置ANT的路径。如果读者的电脑上已经有ANT了,那可以设置这个参数,这样Buildozer就不会再去下载了。当然Buildozer如果已经下载过一次,那之后打包时也不会再去下载的。

android.skip_update

该参数表示是否跳过更新。如果设置为True,则在打包时不会去更新Android SDK,可以节省很多时间。

android.accept_sdk_license

该参数表示是否接收许可证(license)。如果设置为True,则自动接受许可证中的条款;如果设置为False,则许可证中的条款会在首次运行buildozer时显示(届时需要用户输入y或者N)。

android.apptheme 

用该参数可以设置app主题,如果应用是基于Kivy开发的话,那使用默认的就可以。常见的系统主题请见以下表格。

主题解释
@android:style/Theme.Dialog灰色背景,将一个Activity显示为能话框模式  
@android:style/Theme.NoTitleBar灰色背景,不显示应用程序标题栏
@android:style/Theme.NoTitleBar.Fullscreen灰色背景,不显示应用程序标题栏,并全屏
@android:style/Theme.Light背景为白色
@android:style/Theme.Light.NoTitleBar白色背景并无标题栏
@android:style/Theme.Light.NoTitleBar.Fullscreen白色背景,无标题栏,全屏
@android:style/Theme.Black背景黑色
@android:style/Theme.Black.NoTitleBar黑色背景并无标题栏
@android:style/Theme.Black.NoTitleBar.Fullscreen黑色背景,无标题栏,全屏
@android:style/Theme.Wallpaper用系统桌面为应用程序背景
@android:style/Theme.Wallpaper.NoTitleBar用系统桌面为应用程序背景,且无标题栏
@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen用系统桌面为应用程序背景,无标题栏,全屏
@android:style/Theme.Translucent半透明
@android:style/Theme.Translucent.NoTitleBar半透明、无标题栏
@android:style/Theme.Translucent.NoTitleBar.Fullscreen半透明、无标题栏、全屏
@android:style/Theme.Panel面板风格显示

android.wakelock

如果设置为True,那该应用在运行时设备不会真正进入休眠状态。比如我们打开的音乐APP在设备灭屏的状态下也会正常播放音乐,不会让设备真正休眠。

如果将android.wakelock设置为True,那要记得在android.permissions参数中加入WAKE_LOCK值。

android.archs

安卓架构,针对不同的机型设置不同的值即可,可以填入的值有:armeabi-v7a, arm64-v8a, x86, x86_64。

android.allow_backup

设置为True的话,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复。

android.backup_rules

通过一个xml文件设置备份规则,读者可以前往这个文档地址查看如何编写。

android.no-compile-pyo

设置为True的话,可以禁止在打包时将py文件编译成pyc或pyo格式,能够减少打包时间,当然代码也更容易泄露。

android.release_artifact

release模式下打包出来的文件格式,可以是aab、apk、aar。

android.debug_artifact

debug模式下打包出来的文件格式,可以是apk或aar。

log_level

设置输出日志的等级。0代表只输出error等级的日志,1代表输出error和info等级的日志,2代表输出error、info和debug等级的日志。

build_dir

设置打包时生成的.buildozer文件夹的路径。

bin_dir

设置打包时生成的bin文件夹路径。

以上是关于《Buildozer打包实战指南》第六节 buildozer.spec配置文件中的其他参数的主要内容,如果未能解决你的问题,请参考以下文章

《Buildozer打包实战指南》第六节 buildozer.spec配置文件中的其他参数

《Nuitka打包实战指南》第六节 打包资源文件

《Nuitka打包实战指南》第六节 打包资源文件

《Buildozer打包实战指南》实战打包requests

《Buildozer打包实战指南》实战打包pillow

《Buildozer打包实战指南》实战打包pillow