首页
学习
活动
专区
圈层
工具
发布

利用Python开发App实战

最近想到尝试用python开发一款app,google搜索了一番后,发现确实有路可寻,目前也有了一些相对成熟的模块,于是便开始了动手实战,过程中发现这其中有很多坑,好在最终依靠google解决了,因此小记一番...我们知道在安卓上运行,需要将其打包成apk安装程序,因此就需要用到前面提到过的buildozer工具,(buildozer工具可以打包kivy程序,支持android、ios等),buildozer的安装过程比较简单...: pip install buildozer 使用buildozer工具将kivy程序打包成apk 在python项目目录下运行: buildozer init 运行成功将会创建一个配置文件buildozer.spec...配置文件中的log_level为2,然后重新运行,可以看具体的错误信息。...这是在打包的最后一步,将apk文件copy到项目bin目录下时报的错,是buildozer的一个bug。

4K20

通过Kivy将Python文件打包成apk

周日在配置Kivy时,教程繁多繁琐,让自己有些找不着北,挨个试后,经常在某 处卡壳,屡屡碰壁, 希望自己接下来的集成操作可以为和我一样初开始无所适从的人带来一些帮助 感谢@校长叫我起床,@面包群友的帮助...,让我在配置无门时找到了方向; —镜像文件及GitHub链接传送门在底部,欢迎拍砖 二.安装操作 将Py文件打包成apk文件,江湖上暂有如下3个方法: 1.通过Buildozer;(在linux...有两种工具,分别是p4a和buildozer,kivydev64使用p4a,kivydev使用buildozer。...在成功导入打开的过程中,还会遇到一个问题,会提示你usb接入错误,此时需要你安装这个文件: 下载的链接地址已经放到下方; 3.成功将镜像环境导入后,如果你能看到此神兽Ubantu,说明你的胜利已经在前方...可以成功编译后,接下来在py2apk或py3apk的目录下执行打包命令: p4a apk 即可在该目录下产生apk的文件; 5.这里仅作为测试,将该main.py生成的apk进行,在手机上的运行效果如图

4.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python3使用kivy生成安卓程序

    apk构建环境配置 我们在本地采用了buildozer的方案来进行apk的构建,如果在本地其他环境依赖如jdk等都已经部署完毕,在虚拟环境里面直接安装buildozer是没有问题的。...但是,运气好的情况下也不需要去修改这个配置文件就可以成功构建apk。...但这并不是终点,我们发现在手机上用apk安装的app会出现闪退,这一般都是由于程序报错而导致的,我们可以在连接USB调试的状态下,进入adb shell查看日志: [dechin@dechin-manjaro...,得到手机界面上的效果如下(如果只运行debug或者release,那就不需要连接手机USB调试,这里的操作相当于直接把apk传输到手机上进行安装和运行): ?...基于python也可以开发安卓APP,这需要使用到kivy库来进行开发,再通过buildozer来编译构建。

    10.8K30

    python3使用kivy生成安卓程序

    apk构建环境配置 我们在本地采用了buildozer的方案来进行apk的构建,如果在本地其他环境依赖如jdk等都已经部署完毕,在虚拟环境里面直接安装buildozer是没有问题的。...但是,运气好的情况下也不需要去修改这个配置文件就可以成功构建apk。...但这并不是终点,我们发现在手机上用apk安装的app会出现闪退,这一般都是由于程序报错而导致的,我们可以在连接USB调试的状态下,进入adb shell查看日志: 1 2 3 4 5 6 7 8 9 10...deploy run,得到手机界面上的效果如下(如果只运行debug或者release,那就不需要连接手机USB调试,这里的操作相当于直接把apk传输到手机上进行安装和运行): image.png...来编译构建。

    11.9K00

    如何用python写一个安卓APP?(下)

    接上篇,话说我已经完成了buildozer官方所有步骤,然而由于buildozer的缺陷,APK文件并没有生成,于是就有了下面的结局。...聪明的瓦肯人 ---- 1 正如上篇结尾所述 我手动添加了Aild文件 怎么做的呢 对于我这个安卓盲 不得不白嫖于stack overflow (ps:幸好小哥我懂点英语) 在我尝试了诸如安装...然而 命运总是喜欢跟我开玩笑 最终又出错了 对于第二条错误 我似曾相识 片刻 我恍然大悟 上面的SDK Readme文件夹 已经告诉我需要下载platform-tools了 并且最好使用...然后放在了android-sdk-20目录下 再次执行打包程序 第二条错误确实没有了 然而又多出来一个新的问题 ok 这简单 八成是SDK版本的问题 于是我找到了kivy的一个网上论坛...我的SDK版本是20 所以我去project.propeties文件改了一下 然而 就是无法解决 3 这个时候 我想到了SDK manager 当我打开manager后 发现 platform-tools

    2.7K20

    如何利用Python开发App?

    作者:nmask https://blog.csdn.net/nmask/article/details/109664469 ---- 最近想到尝试用python开发一款app,google搜索了一番后...我们知道在安卓上运行,需要将其打包成apk安装程序,因此就需要用到前面提到过的buildozer工具,(buildozer工具可以打包kivy程序,支持android、ios等),buildozer的安装过程比较简单...: pip install buildozer 使用buildozer工具将kivy程序打包成apk 在python项目目录下运行: buildozer init 运行成功将会创建一个配置文件buildozer.spec...配置文件中的log_level为2,然后重新运行,可以看具体的错误信息。...这是在打包的最后一步,将apk文件copy到项目bin目录下时报的错,是buildozer的一个bug。

    4.4K20

    APP渗透

    jeb 安卓反编译工具,用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间,能将Dalvik字节码反编译为Java源代码 adb 用来操作(调试)android设备(比如android...注册时 当我们输入注册的密码为123456等弱口令时。查看客户端是否允许。 如上图 不允许 此项安全 账号登陆限制 测试一个帐号是否可以同时在多个设备上成功登录客户端,进行操作。...不能则此项安全 账户锁定策略 测试客户端是否限制登录尝试次数。防止木马使用穷举法暴力破解用户密码。 我们多次尝试输错密码 看看app是否会限制登陆错误次数。...使用错误的登录名或密码登录,看客户端提示是否不同。(如果有不同并且验证码无效则可爆破)在显示卡号等敏感信息时是否进行部分遮挡。...威胁等级 若在用户名输入错误和密码输入错误时提示信息不同则存在 UI 信息泄露问题, 此时为低风险,否则无风险。 安全建议 注意UI信息防护 验证码安全 安全退出 测试客户端退出时是否正常终止会话。

    1.3K10

    AndResGuard编译速度优化

    是不是能将混淆的流程放到apk编译流程中,充分的利用编译时多线程的能力呢? 是不是可以对混淆的规则进行二次调整,从而达到压缩比例的提升。...variantName代表构建的一个变种,可以是多渠道构建也可以是debug release的变种。...当我们编译一个apk的时候,会在build/intermediates文件夹下生成很多输入输出的文件,这个是我之前在开发transform的时候找到的小技巧。...最后实际调试中发现了由于项目开启了shrink,所以在r8阶段项目重新生成了一个ap_文件,而这个文件才是最后apk合成包所用的。...吐槽 讲道理groovy真的烂,由于没有编译时的告警,所以你也不知道你的代码写的到底是正确还是错误的。

    2.7K20

    第九章 Android Gradle高级自定义

    但是这种方式有个很大的问题就是修改不方便,特别当我们的build文件中有很多代码时,不容易找,而且修改容易出错,代码版本管理时也容易产生冲突。...DEBUG这个常量需要着重介绍一下,一般在开发过程中我们都会输出日志进行调试,一般只有在我们自己开发中才会打印出日志,当我们发布后就不能打印日志了,也就是我们需要一个标记是debug模式还是release...当我们使用resValue方法时,Android Gradle帮我们生成的资源在哪里呢?...9.9 adb操作选项配置 adb,相信大家都非常熟悉了,它是一个Android Debug Bridge,用于连接我们的Android手机进行一些操作,比如调试Apk,安装Apk,拷贝文件到手机等等。...他是一种在构建时,打包成Apk之前,会检测所有资源,看看是否被引用,如果没有,那么这些资源就不会被打包到Apk包中,因为是在这个过程中(构建时),Android Gradle构建系统会拿到所有的资源,不管是你项目自己的

    1.8K10

    使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件

    应用调试5.1 模拟器调试点击工具栏中的 Tools > Device Manager 图标在弹出窗口中点击 New Emulator选择设备类型和系统版本,点击 Next 完成创建点击工具栏中的运行按钮...,选择模拟器启动应用5.2 真机调试用 USB 线将鸿蒙设备连接到电脑在设备上多次点击版本号开启 开发者选项 和 USB 调试 功能在 DevEco Studio 中选择设备并点击运行按钮,选择已连接的设备如设备未识别...代码编辑与辅助功能6.1 代码补全DevEco Studio 支持智能代码补全,输入代码时会自动提示可能的选项:输入组件名称时提示可用组件输入属性名时提示可用属性支持方法参数提示和类型检查6.2 代码导航...构建与打包7.1 构建应用点击 Build > Build Hap(s)/App(s) 构建 APP 包构建完成后,APK 文件位于 build/outputs/default 目录下7.2 签名配置点击...常见问题与解决方法9.1 模拟器无法启动尝试删除并重新创建模拟器降低模拟器系统版本检查内存9.2 代码报错 "arkts-no-props-by-index"错误原因:ArkTS 不支持通过索引访问对象属性解决方法

    49310

    配置Android项目 - 一些重要的事情

    (特别是对于那些使用Project视图,而不是Android视图) 尝试创建一个文件夹(例如tools),并将所有这些文件放入此文件夹。 ?...flavors Flavours用于创建具有不同设置的构建。...当从IDE运行或调试项目时,Android Studio会使用Android SDK工具生成的调试证书自动为您的APK签名。...proguard Android proguard用来做三件事: 压缩未使用的代码 — 帮助你不超出64k限制 优化代码和apk 混淆代码 — 使你的APK难以做逆向工程 问题是混淆和代码优化显着增加了编译时间...用于调试构建的Proguard规则必须具有以下行以强制proguard忽略警告,跳过代码混淆和优化: ? 对于发布版本,设置proguard规则将会更加困难,因为几乎每个库都有自己的特定规则。

    81720

    xmake从入门到精通6:开发和构建Qt程序

    通常情况,如果是采用官方提供的QT SDK安装包,并且安装目录采用的默认路径,那么即使不配置QT SDK路径,xmake也会尝试去检测它,一般都是能检测到的,如果检测不到,我们可以尝试手动配置下它: $...最后,我们尝试运行下看看: $ xmake run 运行效果如下: ?...我们需要做的仅仅是,切换到android的编译平台去编译它,不过由于要生成apk包,在执行xmake编译后,qt构建规则会自动对android程序做一个部署deploy步骤,也就是调用qt内部的androiddeployqt...程序去生成apk包。...上面的配置和构建过程就可以很方便的将之前的QuickApp和WidgetApp项目编译成Android App,另外qt规则内部还对android版本定制了install程序,可以很方便的安装qt apk

    1.6K20

    ​使用Buck构建Android工程

    遗憾的是这两种方式本质上并没有加速构建,因而当我们需要全量构建工程时,它们都不能带来速度上的提升。...这条Rule代表了一个Android工程的构建目标,即产生一个.apk文件。...至此,Buck工具的构建就已经完成,当我们修改现有逻辑时,没发生改动的module将会直接使用缓存数据,这也在很大程度上提高了我们构建工程的速度。...全民K歌工程接入Buck工具的实践 全民K歌工程在3.7版本中尝试过接入Buck工具,为了保证外网版本稳定性,Buck工具只在本地调试时使用,用以加快全量构建的速度。...总而言之,是一个值得尝试的加速构建策略。以上都是个人理解,可能有错误或者纰漏的地方,欢迎大家指正交流。

    3.3K100

    那些年遇到的bug(2)

    然后尝试着把setDoOutput(true)这句代码注释(默认是false)掉以后,竟然好了。想来想去可能是谷歌对java的URLConnection类做了更改。...的值是否改变 3、是否做了混淆代码的处理 我最后出现的问题就是:代码没有混淆,所以打包后出错了,通过这三步,一步步的排查,最后成功实现了自动更新服务,希望大家认真仔细排查 4、使用Genymotion调试出现错误...INSTALL_FAILED_CPU_ABI_INCOMPATI 由于系统原因,重新安装了系统,但是当我重新运行genymotion的时候,把Android运用部署到上面调试时, console控制台会报错...Genymotion 提供的虚拟设备都已经移除了 Google Apps 以及 ARM library support 所以,如果通过软件里下载回来的虚拟机在运行一些必须依靠这些组件运行的 App 时就会出现错误或闪退现象...所以反复尝试,将代码的位置调整后,结果就出来了。 请注意:一定要先声明;赋值后再去调用。

    975120

    使用Gradle管理你的Android Studio工程

    在编写配置时,你可以像编程一样灵活,Gradle是基于Groovy的DSL语言,完全兼容JAVA Gradle入门 projects 和 tasks是Gradle中最重要的两个概念,任何一个Gradle...这里是循环处理每个applicationVariant,当他们的输出文件名以apk结尾并且buildType是release时,重新设置新的输出文件名,这样就达到了我们批量修改生成的文件名的目的。...我们在开发App的时候免不了要和服务器进行通信,我们的服务器一般都有生产和测试环境,当我们处理开发和测试的时候使用测试环境进行调试,正式发布的时候使用生成环境。...今天我们不谈这个,我想要的是在我们生成的APK包中已经包含了检测代码覆盖率的代码,这样当我们安装APK后运行进行一些测试的时候,这些检测代码覆盖率的代码就会被执行到,这样最后我们导出一份代码测试覆盖率的文件...android.getSdkDirectory(),'tools/lib/emma_device.jar')) } dexOptions javaMaxHeapSize 在Gradle 进行dex的可能会遇到内存不够用的情况,错误信息大概是

    1.2K40

    如何在10分钟内让Android应用大小减少 60%?

    ,因此您应该尽可能避免在调试构建中使用。...每次构建时 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...要修正错误并强制 ProGuard 保留特定代码,请在 ProGuard 配置文件中添加一行-keep代码。...问题排查一章概述了您可能会在混淆代码时遇到的其他常见问题。 请注意,您每次使用 ProGuard 创建发布构建时都会覆盖mapping.txt文件,因此您每次发布新版本时都必须小心地保存一个副本。...通过为每个发布构建保留一个mapping.txt文件副本,您就可以在用户提交的已混淆堆叠追踪来自旧版本应用时对问题进行调试。

    1K20

    如何在10分钟内让Android应用大小减少 60%?

    ,因此您应该尽可能避免在调试构建中使用。...每次构建时 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...要修正错误并强制 ProGuard 保留特定代码,请在 ProGuard 配置文件中添加一行-keep代码。...问题排查一章概述了您可能会在混淆代码时遇到的其他常见问题。 请注意,您每次使用 ProGuard 创建发布构建时都会覆盖mapping.txt文件,因此您每次发布新版本时都必须小心地保存一个副本。...通过为每个发布构建保留一个mapping.txt文件副本,您就可以在用户提交的已混淆堆叠追踪来自旧版本应用时对问题进行调试。

    1.8K10
    领券