mirror of
https://github.com/processing/processing4.git
synced 2026-02-03 05:39:18 +01:00
369 lines
16 KiB
Plaintext
369 lines
16 KiB
Plaintext
0216 android
|
|
X Update documentation and tools for Android SDK Tools revision 21
|
|
X http://code.google.com/p/processing/issues/detail?id=1398
|
|
X update Wiki to reflect no need for Google APIs
|
|
o instructions on installing the usb driver for windows
|
|
o http://developer.android.com/sdk/win-usb.html
|
|
o need to post android examples
|
|
o check out andres' changes for PShape
|
|
X look into touch event code, see if there's a good way to integrate
|
|
o make a decision on how to integrate touch event code
|
|
X punting until later
|
|
X add clear and close to all stream methods?
|
|
X http://code.google.com/p/processing/issues/detail?id=244
|
|
X check on this, fixed one, all set
|
|
o gui stuff: http://hg.postspectacular.com/cp5magic/wiki/Home
|
|
X OpenGL sketches crashes on older Android devices
|
|
X http://code.google.com/p/processing/issues/detail?id=1455
|
|
|
|
earlier
|
|
X inside AndroidPreprocessor
|
|
X processing.mode.java.JavaBuild.scrubComments(sketch.getCode(0).getProgram())
|
|
X PApplet.match(scrubbed, processing.mode.java.JavaBuild.SIZE_REGEX);
|
|
X clean up earlier when size() stuff was moved up
|
|
o test libraries on android
|
|
X Implement a way to include the resources directory of an Android app
|
|
X USB host and NFC reader need other changes to the app hierarchy to work
|
|
X http://code.google.com/p/processing/issues/detail?id=767
|
|
X Error for "android create avd" when the AVD is already installed
|
|
X http://code.google.com/p/processing/issues/detail?id=614
|
|
|
|
|
|
_ NullPointerException in AndroidBuild.writeLocalProps(AndroidBuild.java:458)
|
|
_ prompts for SDK, works; then after restart breaks again
|
|
_ also refers to ANDROID_HOME and not ANDROID_SDK..
|
|
_ are we using the right one these days?
|
|
_ http://code.google.com/p/processing/issues/detail?id=979
|
|
_ this one is difficult to reproduce
|
|
|
|
_ implement Android version of command line tools
|
|
_ http://code.google.com/p/processing/issues/detail?id=1323
|
|
|
|
_ Android emulator doesn't always start on the first attempt
|
|
_ emulator not starting up on OS X?
|
|
_ http://code.google.com/p/processing/issues/detail?id=1210
|
|
|
|
_ Android OPENGL renderer + JAVA2D PGraphics results in PTexture exception
|
|
_ http://code.google.com/p/processing/issues/detail?id=1019
|
|
|
|
_ focus handling note:
|
|
_ http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html
|
|
|
|
_ if a sketch asks for Android mode but it's not available
|
|
_ (after a double-click)
|
|
_ you get the "is android installed"? dialog, then it re-opens again
|
|
_ without closing the other
|
|
|
|
_ don't let the examples get overwritten with mode settings, manifest, etc
|
|
_ the whole sketch.properties thing is yech
|
|
|
|
_ add INTERNET permissions to the android net examples
|
|
_ or other necessary permissions for other examples
|
|
|
|
_ go through all basics/topics examples
|
|
_ remove those that don't make sense with android
|
|
_ remove size() commands from most/all
|
|
_ (or remove ones that truly require size...)
|
|
_ optimize for android use
|
|
_ need to set permissions as necessary (therefore add manifest files)
|
|
|
|
lifecycle/size changes/etc
|
|
_ need to smooth out screen orientation changes
|
|
_ g2 and g3 are no longer disposed on pause (0195), but probably should be
|
|
_ they're deleted when dispose() is called (on exit())
|
|
_ add registered methods again
|
|
_ need to figure out generic event queueing first
|
|
_ may need a different subset of methods, and introduce new ones
|
|
_ that will be usable on both android and desktop
|
|
_ dispose() was calling disposeMethods.handle(), but they're null
|
|
_ possible major issue with sketches not quitting out of run() when in bg
|
|
_ pause needs to actually kill the thread
|
|
_ returning from pause needs to reset the clock
|
|
_ this is currently draining batteries
|
|
_ thread is continually running - 'inside handleDraw()' running continually
|
|
_ inside run() it shouldn't still be going
|
|
_ need sizeChanged() method...
|
|
_ also add the param to the xml file saying that it can deal w/ rotation
|
|
|
|
_ re: android libraries, from shawn van every
|
|
The most powerful part were the libraries (and the ease with which they could be developed). Location, SMS, Camera/Video, Bluetooth (for Arduino integration) and PClient/PRequest were by far the most used. The ones that came with it, plus the ones from MJSoft were good though I ended up making a couple of very specific ones for my students: http://www.mobvcasting.com/wp/?cat=4
|
|
|
|
_ process trackball events (they're only deltas)
|
|
_ handle repeat key events
|
|
_ implement link()
|
|
|
|
_ error in 'create avd' with "Emulator already exists" when it needs an upgrade
|
|
_ or cannot be used with the current setup
|
|
_ use 'android list avds' on the command line to see the problem in this case
|
|
_ when there's a 'create avd' error, things still keep running. yay!
|
|
|
|
_ need to do this for utf8: "overridable Ant javac properties: java.encoding"
|
|
_ new for sdk tools r8, it's using ascii as the default, we're utf-8
|
|
|
|
_ don't give user a "User cancelled attempt to find SDK" error message
|
|
_ it's annoying.. they f*king know they just did that
|
|
_ also gives an error if it unsets the sdk path itself, saying that the
|
|
_ environment variable isn't set. which isn't true--it's set, but it doesn't
|
|
_ think the location is valid, which is totally different.
|
|
_ ...because it's ignoring the exception messages that come in from trying
|
|
_ to create the new sdk object
|
|
|
|
_ need to do something to make it easier to do new screen sizes.
|
|
|
|
_ sketches must be removed manually if the debug keystore changes
|
|
_ http://code.google.com/p/processing/issues/detail?id=236
|
|
|
|
_ "failed to get signature key" problem
|
|
_ Caused by: /Users/aandnota/Documents/android-sdk-mac_x86/tools/ant/ant_rules_r3.xml:209: com.android.sdklib.build.ApkCreationException: Unable to get debug signature key
|
|
|
|
_ saveStream() on processing-android-core.zip breaks behind firewall
|
|
_ downloads a 5kb html login page rather than the correct file
|
|
|
|
_ salaryper crashed when connecting to ctr500 and was re-routed
|
|
_ instead of sending back the gzip file, sent the error page
|
|
_ unlike java, where a 404 would give us null data
|
|
|
|
add to wiki
|
|
_ add to wiki: 1MB file size is max for data folder
|
|
_ Data exceeds UNCOMPRESS_DATA_MAX (11840328 vs 1048576)
|
|
_ File storage = android.os.Environment.getExternalStorageDirectory();
|
|
_ File folder = new File(storage, "awesomeapp");
|
|
_ also check the data folder on run/export
|
|
_ add to wiki: orientation(PORTRAIT) and orientation(LANDSCAPE)
|
|
_ add to keywords.txt
|
|
_ ctrl-F12 (ctrl-fn-f12 on mac) will rotate the emulator
|
|
|
|
android menu
|
|
_ something to bring up the full console window
|
|
_ signing tool
|
|
_ selection of which avd (emulator), or plugged-in devices (if multiple)
|
|
|
|
_ throw an error if a file in the 'data' dir ends with .gz
|
|
|
|
_ on export (application)
|
|
_ increment manifest/android:versionCode each time 'export' is called
|
|
_ Remove the android:debuggable="true" attribute from <application>
|
|
_ provide manifest/android:versionName ('pretty' version number)
|
|
_ setting the default package: manifest/package
|
|
_ application/android:label
|
|
_ used on home screen, manage applications, my downloads, etc
|
|
_ http://developer.android.com/guide/publishing/preparing.html
|
|
_ implement certificates (self-signed) for distribution
|
|
_ http://developer.android.com/guide/publishing/app-signing.html
|
|
_ http://code.google.com/p/processing/issues/detail?id=222
|
|
create new keystore
|
|
location: [ ] (browse)
|
|
password: [ ]
|
|
confirm: [ ]
|
|
...then asks for
|
|
alias, password, confirm, validity (years)
|
|
first/last name, ounit, org, city/locale, state/province, country code (xx)
|
|
|
|
_ StreamPump has been quieted, but maybe this needs to be a global log setting
|
|
|
|
_ seems to have problems on 64-bit windows
|
|
_ removing local version of java helped someone fix it
|
|
|
|
_ don't let the keystore message show up in red
|
|
_ Using keystore: /Users/fry/.android/debug.keystore
|
|
|
|
_ for libraries that don't work with android, don't let them export
|
|
_ http://code.google.com/p/processing/issues/detail?id=248
|
|
_ add line for export in libraries to say whether they're compatible
|
|
_ even just 'android=' will be ok
|
|
_ or 'mode=java,android,python'
|
|
|
|
_ error messages in runner that are handled special (OOME) need different
|
|
_ handling for android vs others.. argh
|
|
|
|
_ clean up changes from andres
|
|
_ what is resetLights() in PGraphics?
|
|
_ remove model() method from end of PApplet (make it shape(PShape))
|
|
_ PShape examples are totally broken
|
|
|
|
P1 this is embarrassing, need to fix ASAP
|
|
P2 need to fix before beta release
|
|
P3 would like to fix before final release
|
|
P4 not an immediate need, but very nice to have
|
|
P5 nice to have
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
CORE (PApplet, P2D et al)
|
|
|
|
_ implement blendMode() for Android
|
|
_ should be fairly straightforward given Java2D implementation
|
|
_ http://code.google.com/p/processing/issues/detail?id=1386
|
|
_ Finish implementation of OPEN and CHORD drawing modes for arc()
|
|
_ http://code.google.com/p/processing/issues/detail?id=1405
|
|
|
|
_ images resized with default renderer on Android are pixelated
|
|
_ http://code.google.com/p/processing/issues/detail?id=552
|
|
|
|
_ implement tap detection and set correct click count for mouseClicked()
|
|
_ mouseClicked is currently not fired at all (no direct match on Android)
|
|
_ http://code.google.com/p/processing/issues/detail?id=215
|
|
_ implement multiple pointers and multi-touch
|
|
_ http://code.google.com/p/processing/issues/detail?id=243
|
|
|
|
_ Examples > Topics > Effects > Lens uses a ton of memory
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
TOOLS
|
|
|
|
_ errors in ActivityManager aren't coming through
|
|
_ if AVD is deleted while processing still running, things flake out
|
|
_ also no error messages, just 'giving up on launching emulator'
|
|
|
|
// jdf maybedone
|
|
_ when out of memory, need an error message to show up in the PDE
|
|
_ show "OutOfMemoryError: bitmap size exceeds VM budget" in status area
|
|
_ Examples > Topics > Drawing > Animator produces:
|
|
_ Uncaught handler: thread Animation Thread exiting due to uncaught exception
|
|
_ java.lang.OutOfMemoryError: bitmap size exceeds VM budget
|
|
_ at android.graphics.Bitmap.nativeCreate(Native Method)
|
|
|
|
// jdf maybedone
|
|
_ stack overflow produced no error inside the PDE
|
|
_ probably same as memory error above
|
|
|
|
// jdf maybedone
|
|
_ if hitting 'run' in p5, need to kill any sketch that's currently running
|
|
|
|
_ need to make data folder copy more efficient than just copying everything
|
|
_ right now, first copies to src inside Build.java (which then copies to bin)
|
|
|
|
// jdf maybedone
|
|
_ other exceptions coming through System.err
|
|
W/System.err( 242): java.lang.IllegalArgumentException: File /data/data/processing.android.test.savemanyimages/files/circles-0001.tif contains a path separator
|
|
W/System.err( 242): at android.app.ApplicationContext.makeFilename(ApplicationContext.java:1444)
|
|
W/System.err( 242): at android.app.ApplicationContext.openFileOutput(ApplicationContext.java:386)
|
|
W/System.err( 242): at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158)
|
|
W/System.err( 242): at processing.core.PApplet.createOutput(PApplet.java:3677)
|
|
|
|
P1
|
|
_ no ES2 in the emulator, and no error reported in the PDE
|
|
_ problem is probably that the error comes via E/AndroidRuntime
|
|
_ java.lang.RuntimeException: Unable to start activity ComponentInfo{processing.test.fisheye/processing.test.fisheye.FishEye}: java.lang.RuntimeException: P3D: OpenGL ES 2.0 is not supported by this device.
|
|
_ http://developer.android.com/tools/devices/emulator.html
|
|
_ http://code.google.com/p/processing/issues/detail?id=1059
|
|
|
|
P2
|
|
_ move the Android tools into its own source package in SVN
|
|
_ started, but needs proper Tool or Mode packaging
|
|
_ http://code.google.com/p/processing/issues/detail?id=206
|
|
_ implement method for selecting the AVD
|
|
_ http://code.google.com/p/processing/issues/detail?id=208
|
|
_ implement means to use Intel version of the emulator
|
|
_ need to verify if this is much faster or not
|
|
_ http://developer.android.com/tools/devices/emulator.html
|
|
_ http://android-developers.blogspot.com/2012/04/faster-emulator-with-better-hardware.html
|
|
|
|
P3 _ for now, only runs on the first device (findDevice()) found
|
|
P3 _ --> implement selector to choose the default device for debugging
|
|
P3 _ http://code.google.com/p/processing/issues/detail?id=207
|
|
P3 _ if different machines, debug.keystore changes, requiring manual removal
|
|
P3 _ or find a way to do it automatically with processing
|
|
P3 _ adb -s HT91MLC00031 install -r sketchbook/Hue/android/bin/Hue-debug.apk
|
|
P3 _ pkg: /data/local/tmp/Hue-debug.apk
|
|
P3 _ Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
|
|
P3 _ why does this result return 0?
|
|
P3 _ can't keep it with the sketch, don't want to give away private key
|
|
P3 _ with different machines, users are required to remove signature
|
|
P3 _ add a method to remove an application if the debug key is different
|
|
P3 _ perhaps the first time an application is installed, remove it?
|
|
P3 _ http://code.google.com/p/processing/issues/detail?id=236
|
|
P3 _ library support also needs android manifest changes
|
|
P3 _ http://code.google.com/p/processing/issues/detail?id=225
|
|
|
|
_ implement automatic download/install of android tools
|
|
_ also need to install USB Driver on Windows, and set device rules on Linux
|
|
_ http://code.google.com/p/processing/issues/detail?id=203
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
EXAMPLES
|
|
|
|
_ simple example of reading the compass (also note that won't work w/ sim)
|
|
_ and also the gps, i assume (can do fake data w/ sim)
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
SAVED FOR LATER
|
|
|
|
_ may need to add screen orientation as a built-in function
|
|
_ fairly common to use, and otherwise needs an obscure import
|
|
|
|
_ possibility of doing a compile (not run) using straight javac?
|
|
_ this would be a faster way to check for errors
|
|
_ w/o needing to use the incredibly slow android tools
|
|
|
|
_ maybe the back button shouldn't quit apps, the home button should?
|
|
_ back button use in apps is so infuriating...
|
|
|
|
_ separate "PApplet" into separate View and Activity classes
|
|
_ http://code.google.com/p/processing/issues/detail?id=212
|
|
_ re-implement to use Fragment API
|
|
_ and what about daydream or widgets or whatever?
|
|
_ http://code.google.com/p/processing/issues/detail?id=1335
|
|
_ implement size() and createGraphics() for arbitrary renderers
|
|
_ http://code.google.com/p/processing/issues/detail?id=241
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
OPTIMIZE / ENHANCEMENTS
|
|
|
|
_ don't re-calculate stroke() or fill() when it's the same value
|
|
_ should path.reset() or path.rewind() be used for a path to be reused?
|
|
|
|
_ errors that cause a crash when setting sketchPath
|
|
_ seems to be a filesystem that got too full
|
|
_ no real signs of what went wrong, but deleting the avd fixed it
|
|
_ if it reappears again, trap that condition, and tell the user the fix
|
|
|
|
_ show/hide the virtual keyboard
|
|
InputMethodManager imm =
|
|
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.showSoftInput(surfaceView, 0);
|
|
|
|
_ list contents of data folder (assets folder)
|
|
try {
|
|
PApplet.println(assets.list(""));
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
_ excessive memory use indicator
|
|
_ D/dalvikvm( 1205): GC freed 814 objects / 523352 bytes in 58ms
|
|
_ could help show when lots of memory are being used
|
|
|
|
try {
|
|
File root = Environment.getExternalStorageDirectory();
|
|
if (root.canWrite()){
|
|
File gpxfile = new File(root, "gpxfile.gpx");
|
|
FileWriter gpxwriter = new FileWriter(gpxfile);
|
|
BufferedWriter out = new BufferedWriter(gpxwriter);
|
|
out.write("Hello world");
|
|
out.close();
|
|
}
|
|
} catch (IOException e) {
|
|
Log.e(TAG, "Could not write file " + e.getMessage());
|
|
}
|
|
|
|
_ application local storage: context.getFilesDir().getPath()
|
|
"For those of you interested, the internal 8GB of storage on the phone
|
|
is mounted at /emmc (r/w mode, of course) and microSD cards still
|
|
shows up normally at /sdcard as expected."
|
|
|
|
_ other useful tidbits (handlers etc)
|
|
_ http://developer.android.com/guide/appendix/faq/commontasks.html
|