با سلام.
دوستان ببینید موضوعی که خوب من همیشه باهاش درگیر بودم نوع پردازندههای دستگاههای اندروید و خروجی گرفتن APK برای این معماریها بوده. بالاخره نشستم کلی از اینور و اونور مطلب خوندم تا به این موارد زیر رسیدم:
این جدولی هست که داخل خود مستندات گوگل بهش اشاره میکنه برای معماریهای مختلف و خروجی گرفتن آنها:
تکلیف اون گزینههای ignore که مشخصه و هیچی.
میمونه سه گزینه اول جدول:
armeabi-v7a: این که خوب به قطع باید باشه و تکلیفش روشن.
arm64-v8a: اینم که میدونیم ورژن جدید و اگه این بسته وجود نداشته باشه گوشیها از همان armeabi-v7a استفاده میکنن.
x86: این هم که مال دستگاههای با پردازنده اینتل که ظاهرا تعداد خیلی کمی از آنها تولید شده، طبق آماری که در منابع مختلف خوندم ظاهرا فقط 1.7% دستگاهها از این پردازندهها استفاده میکنن. خودم هم یادمه یه تبلت با CPU اینتل داشتم خیلی از برنامهها به دلیل نبود این نوع معماری، روی دستگاه اجرا نمیشدن.
سوال اول: آیا واقعا خروجی گرفتن برای معماری x86 معقول هست؟ یه مطلبی هم شنیدم که ظاهرا حتی گوشیهایی با این معماری اکثرا با شبیهساز برنامههای armeabi-v7a را هم میتوانند اجرا کنند. آیا این مطلب درست است؟ در ضمن کافهبازار هم فقط از دو معماری 8 و 7 برای خروجیهای جدا پشتیبانی میکنه و فکر میکنم شاید نشان دهنده بلااستفاده بودن این نوع معماری باشه.
سوال دوم: آیا arm64-v8a واقعا بهتر و سریعتر هست روی دستگاههایی که این معماری را ساپورت میکنن؟
سوال نهایی: با این نتایج من توی فایل build.gradle گفتم فقط از این دو مورد معماری برای خروجی استفاده کنه:
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
//universalApk true // If true, also generate a universal APK
include "armeabi-v7a", "arm64-v8a"
}
}
درسته مشکلی نداره؟