Как запустить приложение, созданное для более поздней версии Android, на старом Android-устройстве?

Как можно установить приложение, созданное для Jellybean, и использовать его на Gingerbread?

Возьмем, к примеру, Google Keyboard . Клавиатура Google предназначена для использования с Ice Cream Sandwich и более поздними версиями, но скажем, я хочу, чтобы она была на моем телефоне с CyanogenMod 7.2 с root-доступом. Это возможно?

Ответы (2)

Технически требование к версии можно переопределить, открыв файл .apk, отредактировав файл manifest.xml и установив атрибут android:minSdkVersionв <uses-sdk>элементе в соответствии с вашей версией SDK (или просто полностью удалив этот атрибут, и в этом случае по умолчанию будет установлено значение «1»). " и предположим, что он будет работать на любой версии Android), затем используйте модифицированный файл .apk для его установки.

Однако это почти всегда плохая идея . Разработчик приложения, по-видимому, установил для этого требования значение, потому что им действительно нужно что-то, представленное в этой версии SDK. Если бы они этого не сделали, они бы установили что-то другое или опустили бы его. Попытка запустить приложение на версии Android, в которой отсутствуют необходимые функции, может привести к хаосу, сбоям, принудительному закрытию и другим неприятностям.

В случае приложений, созданных Google, я бы предположил, что они точно знали, какую функциональность использует их приложение и когда оно было представлено, и что оно определенно каким-то образом сломается без этой функциональности, когда они устанавливают minSdkVersion для своего приложения, и, таким образом, пытаются это трюк почти наверняка не удастся.

Но если разработчик просто ленивый тип, который настоял на установке атрибута (вероятно, на текущую версию), не особо задумываясь о том, действительно ли он нужен (например, «мне не хочется просматривать мой код и проверять, какие функции я действительно использую и когда Google добавил его в Android, поэтому я просто установлю minSdkVersion на текущую версию Android»), это может просто сработать. Или отсутствующая функциональность может использоваться только в той части приложения, которую вы никогда не используете, и, таким образом, неисправность не имеет для вас значения.

Нет, по крайней мере никто не нашел надежного способа сделать это. В более высоких версиях Android представлены новые API, которые могут потребоваться приложению для правильной работы.

Это несколько огорчает. Можно ли как-то возиться с приложением (при условии, что оно изначально не из Play Store)?
Если у вас есть исходный код приложения, нет никаких причин, по которым вы не можете изменить его для работы с более ранней версией Android, хотя вам, очевидно, придется изменить любую часть приложения, для которой требуются API, предоставляемые более поздними версиями Android.
@JeffreyLin Это будет нелегко никому, кроме оригинального автора, и они уже решили, что это слишком много усилий.