Kivy和Google Play 64位

时间:2019-05-26 10:51:25

标签: android python google-play kivy

您可能已经知道,从2019年8月1日开始,所有Android版本必须符合Google Play 64位要求。 Kivy + Buildozer允许我们创建此类应用吗?

提前谢谢!

3 个答案:

答案 0 :(得分:1)

在评论中,here's在Kivy存储库中有一个未解决的问题,涉及Kivy支持Google即将推出的64位二进制要求的计划。这是其中一位开发人员的评论:

  

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html中:

     
    

2019年8月,Play将要求具有本机库的新应用程序和应用程序更新除了提供32位版本外,还必须提供64位版本。

  
     

我认为我们应该默认使用arm64-v8a以防止以后出现问题,并开始考虑如何进行多个目标编译并将其嵌入一个APK中。

...它有三个竖起大拇指。

答案 1 :(得分:1)

Buildozer已经允许您创建这样的应用程序,只需将buildozer.spec中的android.arch配置令牌更改为arm64-v8a,而不是默认的armeabi-v7a

我们不支持将多种架构捆绑在一起的APK,主要是因为所有已编译的组件都会大大增加APK的大小,但是您可以将每种类型的一个APK上传到Google Play。

我们可能会在接下来的几个月内更新默认值,并提供有关它的更多文档。

答案 2 :(得分:0)

很简单,只需转到 import java.io.*; public class calculator { void add(double a,double b) { double a1=a+b; System.out.println("Their sum will be "+a1); } void subtract(double a,double b) { double a2=a-b; System.out.println("Their difference will be "+a2); } void multiply(double a,double b) { double a3=a*b; System.out.println("Their product will be "+a3); } void divide(double a,double b) { double a4=a/b; System.out.println("Their division will result to "+a4); } void findremainder(double a,double b) { if (a>b) { double a5a=a%b; System.out.println("The remainder obtained after their division is "+a5a); } if (b>a) { double a5b=b%a; System.out.println("The remainder obtained after their division is "+a5b); } } void percent(double a,double b)throws IOException { InputStreamReader read=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(read); System.out.println("What type of percentage you want ? [give the number in the list below which correspons to that operation]"); System.out.println("1=> Smaller number by Bigger number"); System.out.println("2=> Bigger number by smaller number"); int o=Integer.parseInt(in.readLine()); if (o==1) { if (a>b) { double per=(100*b)/a; System.out.println("The percentage is "+per+"%"); } if (b>a) { double per2=(100*a)/b; System.out.println("The percentage is "+per2+"%"); } } if (o==2) { if (a>b) { double per=(100*a)/b; System.out.println("The percentage is "+per+"%"); } if (b>a) { double per2=(100*b)/a; System.out.println("The percentage is "+per2+"%"); } } } void power(double a,double b) { double pow=Math.pow(a,b); System.out.println(a+" raised to "+b+" is equal to "+pow); } void squareroot(double a,double b)throws IOException { InputStreamReader read=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(read); System.out.println("Which no. you want me to take out the square root of ? [give the number in the list below which correspons to that operation]"); System.out.println("1=> 1st given number"); System.out.println("2=> 2nd given number"); int h=Integer.parseInt(in.readLine()); if (h==1) { double sq=Math.sqrt(a); System.out.println("Square root of "+a+" is "+sq); } if (h==2) { double sq2=Math.sqrt(b); System.out.println("Square root of "+b+" is "+sq2); } } void cuberoot(double a,double b)throws IOException { InputStreamReader read=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(read); System.out.println("Which no. you want me to take out the cube root of ? [give the number in the list below which correspons to that operation]"); System.out.println("1=> 1st given number"); System.out.println("2=> 2nd given number"); int po=Integer.parseInt(in.readLine()); if (po==1) { double cr=Math.cbrt(a); System.out.println("Cube root of "+a+" is "+cr); } if (po==2) { double cr2=Math.cbrt(b); System.out.println("Cube root of "+b+" is "+cr2); } } public static void main(String args[])throws IOException { InputStreamReader read=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(read); System.out.println("Hi,I am a calculator"); System.out.println("As your real life calculator,I can do the same things"); System.out.println("But I can only operate on 2 numbers, one at a time"); System.out.println("And for every other operation,you have to exit and come back to the terminal window"); System.out.println("But there are some other useful operations available here as well"); System.out.println("So now,give me any 2 numbers on which you want me to operate"); double n1=Double.parseDouble(in.readLine()); double n2=Double.parseDouble(in.readLine()); calculator ob=new calculator(); System.out.println("What you want to do with these 2 numbers [give the number in the list below which correspons to that operation]"); System.out.println("1=> Addition"); System.out.println("2=> Subtraction"); System.out.println("3=> Multiplication"); System.out.println("4=> Division"); System.out.println("5=> Find the remainder of their division"); System.out.println("6=> Find the percentage of one to the other"); System.out.println("7=> Find the power of the 1st number to the 2nd number"); System.out.println("8=> Find the square root of anyone of the numbers"); System.out.println("9=> Find the cube root of anyone of the numbers"); int p=Integer.parseInt(in.readLine()); if (p==1) { ob.add(n1,n2); } if (p==2) { ob.subtract(n1,n2); } if (p==3) { ob.multiply(n1,n2); } if (p==4) { ob.divide(n1,n2); } if (p==5) { ob.findremainder(n1,n2); } if (p==6) { ob.percent(n1,n2); } if (p==7) { ob.power(n1,n2); } if (p==8) { ob.squareroot(n1,n2); } if (p==9) { ob.cuberoot(n1,n2); } System.out.println("So I hope you got your answer and you are satisfied with it"); System.out.println("Also, please give a feedback to my master"); System.out.println("Your feedback could help me to improve more and more"); System.out.println("And if I got time... I could conqueror the world"); System.out.println("Anyways..."); System.out.println("Thank you for accessing me and I hope you have a great day"); } } 文件中的第 232 行并将 buildozer.spec 更改为 arch,然后构建应用程序,然后通过更改 {{1 arm64-v8a 文件的 }} 到 arch。在 Google Play 控制台上,上传这两个文件。