Hex Artifact Content
Not logged in

Artifact dc54fe9ca47b3e11f9d6a1457a40fcb3c5b1c442:

Wiki page [Building AndroWish] by chw 2019-05-02 05:02:16.
0000: 44 20 32 30 31 39 2d 30 35 2d 30 32 54 30 35 3a  D 2019-05-02T05:
0010: 30 32 3a 31 36 2e 37 37 39 0a 4c 20 42 75 69 6c  02:16.779.L Buil
0020: 64 69 6e 67 5c 73 41 6e 64 72 6f 57 69 73 68 0a  ding\sAndroWish.
0030: 50 20 61 38 39 30 32 36 61 32 31 33 34 65 35 38  P a89026a2134e58
0040: 61 65 64 36 34 65 33 36 36 35 64 66 33 62 30 32  aed64e3665df3b02
0050: 32 34 64 33 32 65 38 63 36 33 0a 55 20 63 68 77  24d32e8c63.U chw
0060: 0a 57 20 32 32 39 35 0a 3c 68 32 3e 42 75 69 6c  .W 2295.<h2>Buil
0070: 64 69 6e 67 20 41 6e 64 72 6f 57 69 73 68 3c 2f  ding AndroWish</
0080: 68 32 3e 0d 0a 0d 0a 3c 68 33 3e 52 65 71 75 69  h2>....<h3>Requi
0090: 72 65 6d 65 6e 74 73 3c 2f 68 33 3e 0d 0a 0d 0a  rements</h3>....
00a0: 20 20 2a 20 20 3c 61 20 68 72 65 66 3d 22 68 74    *  <a href="ht
00b0: 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61  tp://developer.a
00c0: 6e 64 72 6f 69 64 2e 63 6f 6d 2f 73 64 6b 2f 69  ndroid.com/sdk/i
00d0: 6e 64 65 78 2e 68 74 6d 6c 22 3e 41 6e 64 72 6f  ndex.html">Andro
00e0: 69 64 20 53 44 4b 3c 2f 61 3e 20 28 76 65 72 73  id SDK</a> (vers
00f0: 69 6f 6e 20 31 32 20 6f 72 20 6c 61 74 65 72 29  ion 12 or later)
0100: 0d 0a 20 20 2a 20 20 3c 61 20 68 72 65 66 3d 22  ..  *  <a href="
0110: 68 74 74 70 3a 2f 2f 64 65 76 65 6c 6f 70 65 72  http://developer
0120: 2e 61 6e 64 72 6f 69 64 2e 63 6f 6d 2f 74 6f 6f  .android.com/too
0130: 6c 73 2f 73 64 6b 2f 6e 64 6b 2f 69 6e 64 65 78  ls/sdk/ndk/index
0140: 2e 68 74 6d 6c 22 3e 41 6e 64 72 6f 69 64 20 4e  .html">Android N
0150: 44 4b 3c 2f 61 3e 20 28 72 37 20 6f 72 20 6c 61  DK</a> (r7 or la
0160: 74 65 72 29 0d 0a 20 20 2a 20 20 4d 69 6e 69 6d  ter)..  *  Minim
0170: 75 6d 20 41 50 49 20 6c 65 76 65 6c 20 73 75 70  um API level sup
0180: 70 6f 72 74 20 62 79 20 53 44 4c 20 69 73 20 31  port by SDL is 1
0190: 30 20 28 41 6e 64 72 6f 69 64 20 32 2e 33 2e 33  0 (Android 2.3.3
01a0: 29 2c 20 72 65 71 75 65 73 74 65 64 20 41 50 49  ), requested API
01b0: 20 6c 65 76 65 6c 20 66 72 6f 6d 20 3c 74 74 3e   level from <tt>
01c0: 70 72 6f 6a 65 63 74 2e 70 72 6f 70 65 72 74 69  project.properti
01d0: 65 73 3c 2f 74 74 3e 20 69 73 20 31 36 20 28 41  es</tt> is 16 (A
01e0: 6e 64 72 6f 69 64 20 34 2e 31 29 0d 0a 20 20 2a  ndroid 4.1)..  *
01f0: 20 20 43 50 55 73 20 73 75 70 70 6f 72 74 65 64    CPUs supported
0200: 20 66 6f 72 20 6e 61 74 69 76 65 20 73 68 61 72   for native shar
0210: 65 64 20 6c 69 62 72 61 72 69 65 73 20 61 72 65  ed libraries are
0220: 20 63 75 72 72 65 6e 74 6c 79 20 3c 74 74 3e 61   currently <tt>a
0230: 72 6d 65 61 62 69 3c 2f 74 74 3e 20 61 6e 64 20  rmeabi</tt> and 
0240: 3c 74 74 3e 78 38 36 3c 2f 74 74 3e 2e 20 54 68  <tt>x86</tt>. Th
0250: 69 73 20 63 61 6e 20 62 65 20 63 68 61 6e 67 65  is can be change
0260: 64 20 69 6e 20 3c 74 74 3e 6a 6e 69 2f 41 70 70  d in <tt>jni/App
0270: 6c 69 63 61 74 69 6f 6e 2e 6d 6b 3c 2f 74 74 3e  lication.mk</tt>
0280: 2e 0d 0a 0d 0a 3c 68 33 3e 42 75 69 6c 64 69 6e  .....<h3>Buildin
0290: 67 20 61 6e 64 20 52 75 6e 6e 69 6e 67 20 41 6e  g and Running An
02a0: 64 72 6f 57 69 73 68 3c 2f 68 33 3e 0d 0a 0d 0a  droWish</h3>....
02b0: 4f 6c 64 20 73 63 68 6f 6f 6c 20 75 73 69 6e 67  Old school using
02c0: 20 41 70 61 63 68 65 20 3c 74 74 3e 61 6e 74 3c   Apache <tt>ant<
02d0: 2f 74 74 3e 3a 0d 0a 0d 0a 20 20 23 20 20 52 65  /tt>:....  #  Re
02e0: 66 72 65 73 68 20 74 68 65 20 70 72 6f 6a 65 63  fresh the projec
02f0: 74 20 73 65 74 74 69 6e 67 73 20 75 73 69 6e 67  t settings using
0300: 20 74 68 65 20 61 6e 64 72 6f 69 64 20 63 6f 6d   the android com
0310: 6d 61 6e 64 20 66 72 6f 6d 20 41 6e 64 72 6f 69  mand from Androi
0320: 64 20 53 44 4b 3a 20 3c 74 74 3e 61 6e 64 72 6f  d SDK: <tt>andro
0330: 69 64 20 75 70 64 61 74 65 20 70 72 6f 6a 65 63  id update projec
0340: 74 3c 2f 74 74 3e 0d 0a 20 20 23 20 20 52 65 76  t</tt>..  #  Rev
0350: 69 65 77 20 3c 74 74 3e 6c 6f 63 61 6c 2e 70 72  iew <tt>local.pr
0360: 6f 70 65 72 74 69 65 73 3c 2f 74 74 3e 20 74 6f  operties</tt> to
0370: 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 64 69   point to the di
0380: 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68  rectory where th
0390: 65 20 41 6e 64 72 6f 69 64 20 53 44 4b 20 72 65  e Android SDK re
03a0: 73 69 64 65 73 2e 0d 0a 20 20 23 20 20 55 73 65  sides...  #  Use
03b0: 20 3c 74 74 3e 61 6e 74 3c 2f 74 74 3e 20 74 6f   <tt>ant</tt> to
03c0: 20 62 75 69 6c 64 20 41 6e 64 72 6f 57 69 73 68   build AndroWish
03d0: 20 66 72 6f 6d 20 73 63 72 61 74 63 68 3a 20 3c   from scratch: <
03e0: 74 74 3e 61 6e 74 20 64 65 62 75 67 3c 2f 74 74  tt>ant debug</tt
03f0: 3e 2e 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73  >. This includes
0400: 20 62 75 69 6c 64 69 6e 67 20 74 68 65 20 43 20   building the C 
0410: 6c 69 62 72 61 72 69 65 73 20 75 73 69 6e 67 20  libraries using 
0420: 41 6e 64 72 6f 69 64 20 4e 44 4b 2e 20 54 68 61  Android NDK. Tha
0430: 74 20 73 74 65 70 20 63 61 6e 20 62 65 20 70 65  t step can be pe
0440: 72 66 6f 72 6d 65 64 20 73 65 70 61 72 61 74 65  rformed separate
0450: 6c 79 20 62 79 20 72 75 6e 6e 69 6e 67 20 3c 74  ly by running <t
0460: 74 3e 6e 64 6b 2d 62 75 69 6c 64 3c 2f 74 74 3e  t>ndk-build</tt>
0470: 20 69 6e 20 74 68 65 20 3c 74 74 3e 6a 6e 69 3c   in the <tt>jni<
0480: 2f 74 74 3e 20 64 69 72 65 63 74 6f 72 79 20 6f  /tt> directory o
0490: 72 20 62 79 20 69 6e 76 6f 6b 69 6e 67 20 3c 74  r by invoking <t
04a0: 74 3e 61 6e 74 20 6e 64 6b 2d 62 75 69 6c 64 3c  t>ant ndk-build<
04b0: 2f 74 74 3e 0d 0a 20 20 23 20 20 54 68 65 20 72  /tt>..  #  The r
04c0: 65 73 75 6c 74 69 6e 67 20 41 6e 64 72 6f 69 64  esulting Android
04d0: 20 41 50 4b 20 69 73 20 62 75 69 6c 74 20 74 6f   APK is built to
04e0: 20 3c 74 74 3e 62 69 6e 2f 41 6e 64 72 6f 57 69   <tt>bin/AndroWi
04f0: 73 68 2d 64 65 62 75 67 2e 61 70 6b 3c 2f 74 74  sh-debug.apk</tt
0500: 3e 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 69  > which can be i
0510: 6e 73 74 61 6c 6c 65 64 20 6f 6e 74 6f 20 61 20  nstalled onto a 
0520: 64 65 76 69 63 65 20 6f 72 20 65 6d 75 6c 61 74  device or emulat
0530: 6f 72 20 75 73 69 6e 67 20 3c 74 74 3e 61 64 62  or using <tt>adb
0540: 20 69 6e 73 74 61 6c 6c 20 2d 72 20 62 69 6e 2f   install -r bin/
0550: 41 6e 64 72 6f 57 69 73 68 2d 64 65 62 75 67 2e  AndroWish-debug.
0560: 61 70 6b 3c 2f 74 74 3e 2e 0d 0a 20 20 23 20 20  apk</tt>...  #  
0570: 53 74 61 72 74 20 41 6e 64 72 6f 57 69 73 68 20  Start AndroWish 
0580: 6f 6e 20 64 65 76 69 63 65 20 6f 72 20 65 6d 75  on device or emu
0590: 6c 61 74 6f 72 20 75 73 69 6e 67 20 3c 74 74 3e  lator using <tt>
05a0: 61 64 62 3c 2f 74 74 3e 20 66 72 6f 6d 20 74 68  adb</tt> from th
05b0: 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 73 79  e development sy
05c0: 73 74 65 6d 3a 20 3c 74 74 3e 61 64 62 20 73 68  stem: <tt>adb sh
05d0: 65 6c 6c 20 61 6d 20 73 74 61 72 74 20 74 6b 2e  ell am start tk.
05e0: 74 63 6c 2e 77 69 73 68 2f 2e 41 6e 64 72 6f 57  tcl.wish/.AndroW
05f0: 69 73 68 4c 61 75 6e 63 68 65 72 3c 2f 74 74 3e  ishLauncher</tt>
0600: 2e 0d 0a 20 20 23 20 20 43 6c 65 61 6e 20 74 68  ...  #  Clean th
0610: 65 20 62 75 69 6c 64 20 74 72 65 65 20 77 69 74  e build tree wit
0620: 68 20 3c 74 74 3e 61 6e 74 20 63 6c 65 61 6e 3c  h <tt>ant clean<
0630: 2f 74 74 3e 2e 0d 0a 0d 0a 4e 65 77 20 73 74 79  /tt>.....New sty
0640: 6c 65 20 75 73 69 6e 67 20 3c 74 74 3e 67 72 61  le using <tt>gra
0650: 64 6c 65 77 3c 2f 74 74 3e 3a 0d 0a 0d 0a 20 20  dlew</tt>:....  
0660: 23 20 20 53 65 74 75 70 20 79 6f 75 72 20 65 6e  #  Setup your en
0670: 76 69 72 6f 6e 6d 65 6e 74 20 72 65 67 61 72 64  vironment regard
0680: 69 6e 67 20 3c 74 74 3e 41 4e 44 52 4f 49 44 5f  ing <tt>ANDROID_
0690: 48 4f 4d 45 3c 2f 74 74 3e 20 61 6e 64 20 74 68  HOME</tt> and th
06a0: 65 20 3c 74 74 3e 6e 64 6b 2d 62 75 69 6c 64 3c  e <tt>ndk-build<
06b0: 2f 74 74 3e 20 63 6f 6d 6d 61 6e 64 20 65 2e 67  /tt> command e.g
06c0: 2e 20 62 79 20 73 65 74 74 69 6e 67 20 62 6f 74  . by setting bot
06d0: 68 20 61 20 70 72 6f 70 65 72 20 3c 74 74 3e 50  h a proper <tt>P
06e0: 41 54 48 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74  ATH</tt> and <tt
06f0: 3e 41 4e 44 52 4f 49 44 5f 4e 44 4b 5f 48 4f 4d  >ANDROID_NDK_HOM
0700: 45 3c 2f 74 74 3e 2e 0d 0a 20 20 23 20 20 55 73  E</tt>...  #  Us
0710: 65 20 3c 74 74 3e 67 72 61 64 6c 65 77 3c 2f 74  e <tt>gradlew</t
0720: 74 3e 20 74 6f 20 62 75 69 6c 64 20 41 6e 64 72  t> to build Andr
0730: 6f 57 69 73 68 20 66 72 6f 6d 20 73 63 72 61 74  oWish from scrat
0740: 63 68 3a 20 3c 74 74 3e 2e 2f 67 72 61 64 6c 65  ch: <tt>./gradle
0750: 77 20 61 73 73 65 6d 62 6c 65 44 65 62 75 67 3c  w assembleDebug<
0760: 2f 74 74 3e 2e 20 41 73 20 61 62 6f 76 65 20 74  /tt>. As above t
0770: 68 69 73 20 70 65 72 66 6f 72 6d 73 20 62 6f 74  his performs bot
0780: 68 20 74 68 65 20 4e 44 4b 20 62 75 69 6c 64 20  h the NDK build 
0790: 61 6e 64 20 74 68 65 20 66 69 6e 61 6c 20 63 6f  and the final co
07a0: 6d 70 69 6c 65 20 61 6e 64 20 70 61 63 6b 61 67  mpile and packag
07b0: 69 6e 67 20 73 74 65 70 73 2e 0d 0a 20 20 23 20  ing steps...  # 
07c0: 20 54 68 65 20 72 65 73 75 6c 74 69 6e 67 20 41   The resulting A
07d0: 6e 64 72 6f 69 64 20 41 50 4b 20 69 73 20 62 75  ndroid APK is bu
07e0: 69 6c 74 20 74 6f 20 3c 74 74 3e 62 75 69 6c 64  ilt to <tt>build
07f0: 2f 6f 75 74 70 75 74 73 2f 61 70 6b 2f 41 6e 64  /outputs/apk/And
0800: 72 6f 57 69 73 68 2d 64 65 62 75 67 2e 61 70 6b  roWish-debug.apk
0810: 3c 2f 74 74 3e 20 77 68 69 63 68 20 63 61 6e 20  </tt> which can 
0820: 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 6f 6e 74  be installed ont
0830: 6f 20 61 20 64 65 76 69 63 65 20 6f 72 20 65 6d  o a device or em
0840: 75 6c 61 74 6f 72 20 75 73 69 6e 67 20 3c 74 74  ulator using <tt
0850: 3e 61 64 62 20 69 6e 73 74 61 6c 6c 20 2d 72 20  >adb install -r 
0860: 62 75 69 6c 64 2f 6f 75 74 70 75 74 73 2f 61 70  build/outputs/ap
0870: 6b 2f 41 6e 64 72 6f 57 69 73 68 2d 64 65 62 75  k/AndroWish-debu
0880: 67 2e 61 70 6b 3c 2f 74 74 3e 2e 0d 0a 20 20 23  g.apk</tt>...  #
0890: 20 20 53 74 61 72 74 20 41 6e 64 72 6f 57 69 73    Start AndroWis
08a0: 68 20 6f 6e 20 64 65 76 69 63 65 20 6f 72 20 65  h on device or e
08b0: 6d 75 6c 61 74 6f 72 20 75 73 69 6e 67 20 3c 74  mulator using <t
08c0: 74 3e 61 64 62 3c 2f 74 74 3e 20 66 72 6f 6d 20  t>adb</tt> from 
08d0: 74 68 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20  the development 
08e0: 73 79 73 74 65 6d 3a 20 3c 74 74 3e 61 64 62 20  system: <tt>adb 
08f0: 73 68 65 6c 6c 20 61 6d 20 73 74 61 72 74 20 74  shell am start t
0900: 6b 2e 74 63 6c 2e 77 69 73 68 2f 2e 41 6e 64 72  k.tcl.wish/.Andr
0910: 6f 57 69 73 68 4c 61 75 6e 63 68 65 72 3c 2f 74  oWishLauncher</t
0920: 74 3e 2e 0d 0a 20 20 23 20 20 43 6c 65 61 6e 20  t>...  #  Clean 
0930: 74 68 65 20 62 75 69 6c 64 20 74 72 65 65 20 77  the build tree w
0940: 69 74 68 20 3c 74 74 3e 2e 2f 67 72 61 64 6c 65  ith <tt>./gradle
0950: 77 20 63 6c 65 61 6e 3c 2f 74 74 3e 2e 0d 0a 0a  w clean</tt>....
0960: 5a 20 38 35 35 36 61 37 36 30 64 66 62 66 37 30  Z 8556a760dfbf70
0970: 36 61 66 63 66 39 38 62 66 66 34 32 37 65 63 36  6afcf98bff427ec6
0980: 31 31 0a                                         11.