mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-22 04:21:24 -08:00
Update Android port
* java/org/gnu/emacs/EmacsDrawLine.java: Fix this again. Gosh, how does Android do this. * java/org/gnu/emacs/EmacsNoninteractive.java (main): Port to Android 2.3.3. * java/org/gnu/emacs/EmacsSdk11Clipboard.java (EmacsSdk11Clipboard): Port to Android 4.0.3. * java/org/gnu/emacs/EmacsService.java (getClipboardManager): New function. * src/alloc.c (find_string_data_in_pure): Fix Android alignment issue. * src/android-emacs.c (main): Port to Android 4.4. * src/android.c (initEmacs): Align stack to 32 bytes, so it ends up aligned to 16 even though gcc thinks the stack is already aligned to 16 bytes. * src/callproc.c (init_callproc): Use /system/bin/sh instead of /bin/sh by default.
This commit is contained in:
parent
d3b29ccc89
commit
0b1ef9ea31
8 changed files with 186 additions and 29 deletions
|
|
@ -95,7 +95,7 @@ public class EmacsNoninteractive
|
|||
On Android 2.3.3 and earlier, there is no
|
||||
``compatibilityInfo'' argument to getPackageInfo. */
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD)
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1)
|
||||
{
|
||||
method
|
||||
= activityThreadClass.getMethod ("getPackageInfo",
|
||||
|
|
@ -123,11 +123,29 @@ public class EmacsNoninteractive
|
|||
|
||||
/* Now, get a context. */
|
||||
contextImplClass = Class.forName ("android.app.ContextImpl");
|
||||
method = contextImplClass.getDeclaredMethod ("createAppContext",
|
||||
activityThreadClass,
|
||||
loadedApkClass);
|
||||
method.setAccessible (true);
|
||||
context = (Context) method.invoke (null, activityThread, loadedApk);
|
||||
|
||||
try
|
||||
{
|
||||
method = contextImplClass.getDeclaredMethod ("createAppContext",
|
||||
activityThreadClass,
|
||||
loadedApkClass);
|
||||
method.setAccessible (true);
|
||||
context = (Context) method.invoke (null, activityThread, loadedApk);
|
||||
}
|
||||
catch (NoSuchMethodException exception)
|
||||
{
|
||||
/* Older Android versions don't have createAppContext, but
|
||||
instead require creating a ContextImpl, and then
|
||||
calling createPackageContext. */
|
||||
method = activityThreadClass.getDeclaredMethod ("getSystemContext");
|
||||
context = (Context) method.invoke (activityThread);
|
||||
method = contextImplClass.getDeclaredMethod ("createPackageContext",
|
||||
String.class,
|
||||
int.class);
|
||||
method.setAccessible (true);
|
||||
context = (Context) method.invoke (context, "org.gnu.emacs",
|
||||
0);
|
||||
}
|
||||
|
||||
/* Don't actually start the looper or anything. Instead, obtain
|
||||
an AssetManager. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue