您可能已经知道,从2019年8月1日开始,所有Android版本必须符合Google Play 64位要求。 Kivy + Buildozer允许我们创建此类应用吗?
提前谢谢!
答案 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 控制台上,上传这两个文件。