What devices will this work with?

Can the apps be installed on older devices like Nook, or Amazon Fire tablets directly with USB transfer? Or do they have to go through the Google play store?

Hi @ddownn I’m using processing, and from processing IDE or Android studio, I’m loading the apps in my tablet without any issue, just using the USB.

This part made me think that maybe you want to know how to extract an installed Processing app to use it on an other device. You can extract an on your device existing app with the app APK Extractor available on Google Play

I have never tried it before , I just wondered if it would work with a nook which is kind of old. I guess I’ll give it a try. Thanks

Well, I tried running a sketch on the nook, and the IDE is saying “Installing sketch on 3024…”, but the nook isn’t doing anything other than creating a “notification” that USB debugging is connected.

this is what the IDE console says, and the last part just kind of keeps mostly repeating maybe every 30 seconds.

Any advice on whether this looks normal or why nothing is happening on the Nook?

Build folder: /var/folders/mk/s4f0p52s7d701vn15fxzrj6c0000gn/T/android8393296510015745949sketch
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:compileDebugAidl
> Task :app:compileDebugRenderscript
> Task :app:checkDebugManifest
> Task :app:generateDebugBuildConfig
> Task :app:prepareLintJar
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:splitsDiscoveryTaskDebug
> Task :app:processDebugResources
> Task :app:generateDebugSources
> Task :app:javaPreCompileDebug
> Task :app:compileDebugJavaWithJavac
> Task :app:compileDebugNdk NO-SOURCE
> Task :app:compileDebugSources
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders
> Task :app:generateDebugAssets
> Task :app:mergeDebugAssets
> Task :app:extractTryWithResourcesSupportJarDebug
> Task :app:transformClassesWithStackFramesFixerForDebug
> Task :app:transformClassesWithDesugarForDebug
> Task :app:transformClassesWithDexBuilderForDebug
> Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug
> Task :app:transformDexArchiveWithDexMergerForDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:transformNativeLibsWithMergeJniLibsForDebug
> Task :app:processDebugJavaRes NO-SOURCE
> Task :app:transformResourcesWithMergeJavaResForDebug
> Task :app:validateSigningDebug
> Task :app:packageDebug
> Task :app:assembleDebug

BUILD SUCCESSFUL in 12s
28 actionable tasks: 28 executed
D/skia    (30380): SkGraphics::Init() - BLTsville (CPU) dlopen success
D/AndroidRuntime(30380): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(30380): CheckJNI is OFF
D/AndroidRuntime(30380): Calling main entry com.android.commands.am.Am
I/main    (  441): RDGEActivity - RDGEActivity.onPause()
I/main    (  441): RDGEApp - RDGEApp.onPause()
I/main    (  441): RDGEApp - RDGEApp: pausing INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/main    (  441): RDGEApp - RDGEApp: finished pausing INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/main    (  441): RDGEActivity - RDGE pause time: 1ms
D/AndroidRuntime(30380): Shutting down VM
I/main    (  441): RDGEActivity - RDGEActivity.onResume()
I/main    (  441): RDGEApp - RDGEApp.onResume()
I/main    (  441): RDGEApp - RDGEApp: resuming INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/ActivityManager(  201): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.nook.home2/.MainActivity} from pid 30380
I/RDGE    (  441): ActiveShelf current item index changing to 19.00
I/main    (  441): RDGEApp - RDGEApp: finished resuming INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
E/RDGE    (  441): OVERFLOW ERROR: Can't convert uint64 value 18446744070077660279 to type 'int32'
D/dalvikvm(30380): GC_CONCURRENT freed 101K, 81% free 498K/2560K, paused 0ms+0ms
E/RDGE    (  441): ADAPTER CALLBACK ActiveShelfSceneRunState::onSetChanged()
E/RDGE    (  441): JNIBitmapAdapter::getCount() --> 20
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 19 )
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 18 )
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 17 )
I/RDGE    (  441): ActiveShelf current item index changing to 19.00
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 19, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 16 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=280004; tex=0x55360630; name='ActiveShelfSceneRunState:19'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 18, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 15 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=420006; tex=0x553607a0; name='ActiveShelfSceneRunState:18'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 17, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 14 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=490007; tex=0x55360820; name='ActiveShelfSceneRunState:17'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 16, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 13 )
D/dalvikvm(  441): GC_CONCURRENT freed 2158K, 40% free 28222K/46599K, paused 2ms+4ms
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=560008; tex=0x553608a0; name='ActiveShelfSceneRunState:16'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 15, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 12 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=630009; tex=0x55360b00; name='ActiveShelfSceneRunState:15'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 14, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 11 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=700010; tex=0x55360b80; name='ActiveShelfSceneRunState:14'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 13, 0x57d44b24 ) - 267 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 10 )
D/RDGE    (  441): glTexSubImage2D( 267x522 ) - tname=770011; tex=0x55360c00; name='ActiveShelfSceneRunState:13'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 12, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 9 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=840012; tex=0x55360c80; name='ActiveShelfSceneRunState:12'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 11, 0x57d44b24 ) - 272 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 8 )
D/RDGE    (  441): glTexSubImage2D( 272x522 ) - tname=910013; tex=0x55360d00; name='ActiveShelfSceneRunState:11'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 10, 0x57d44b24 ) - 272 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 7 )
D/dalvikvm(  441): GC_CONCURRENT freed 1835K, 40% free 28366K/46599K, paused 1ms+4ms
D/skia    (30380): SkGraphics::Term() dlclose() BLTsville (CPU) 
D/RDGE    (  441): glTexSubImage2D( 272x522 ) - tname=980014; tex=0x55360d80; name='ActiveShelfSceneRunState:10'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 9, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 6 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1050015; tex=0x55360e00; name='ActiveShelfSceneRunState:9'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 8, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 5 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1120016; tex=0x55360e80; name='ActiveShelfSceneRunState:8'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 7, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 4 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1190017; tex=0x55360f00; name='ActiveShelfSceneRunState:7'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 6, 0x57d44b24 ) - 237 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 3 )
D/RDGE    (  441): glTexSubImage2D( 237x522 ) - tname=1260018; tex=0x55360f80; name='ActiveShelfSceneRunState:6'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 5, 0x57d44b24 ) - 238 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 2 )
D/dalvikvm(  441): GC_CONCURRENT freed 2091K, 40% free 28226K/46599K, paused 5ms+3ms
D/RDGE    (  441): glTexSubImage2D( 238x522 ) - tname=1330019; tex=0x55361000; name='ActiveShelfSceneRunState:5'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 4, 0x57d44b24 ) - 288 x 471 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 1 )
D/RDGE    (  441): glTexSubImage2D( 288x471 ) - tname=1400020; tex=0x55361080; name='ActiveShelfSceneRunState:4'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 3, 0x57d44b24 ) - 288 x 471 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 0 )
D/RDGE    (  441): glTexSubImage2D( 288x471 ) - tname=1470021; tex=0x55361100; name='ActiveShelfSceneRunState:3'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 2, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/dalvikvm(  441): GC_CONCURRENT freed 1826K, 39% free 28430K/46599K, paused 3ms+3ms
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=210003; tex=0x552eaa10; name='ActiveShelfSceneRunState:2'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 1, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=140002; tex=0x55360580; name='ActiveShelfSceneRunState:1'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 0, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=70001; tex=0x55360410; name='ActiveShelfSceneRunState:0'
D/skia    (30394): SkGraphics::Init() - BLTsville (CPU) dlopen success
D/AndroidRuntime(30394): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(30394): CheckJNI is OFF
D/BatteryService(  201): PROCESSVALUES : update plugged:false was:false stat:3 zone:16 was:16 send low:false
D/AndroidRuntime(30394): Calling main entry com.android.commands.pm.Pm
W/ActivityManager(  201): No content provider found for permission revoke: file:///data/local/tmp/sketch_191031c_debug.apk
W/ActivityManager(  201): No content provider found for permission revoke: file:///data/local/tmp/sketch_191031c_debug.apk
W/PackageParser(  201): /data/app/vmdl63039073.tmp (at Binary XML file line #7): Requires newer sdk version #17 (current version is #15)
V/NV      (29809): RUNNING
V/NV      (29809): RESOLVED__SUCCESS__REACHED_INTERNET
D/DeviceManagerBroadcastReceiver(  354): action (com.nook.intent.action.NOOK_WIFI_ENABLE_RESPONSE)
D/NookWifiListener(  354): Connected
D/NookWifiListener(  551): Connected
D/NookWifiListener(  551): Connected
I/DeviceManagerHandler(  354): HandleMessage():  msg.what (303)
D/DeviceManagerService(  354): Status = SUCCESS__CONNECTED
I/NookNetworkNotification(  284): status is NookCmConstants 2
D/dalvikvm(29809): GC_CONCURRENT freed 385K, 7% free 9206K/9799K, paused 4ms+3ms
D/BatteryService(  201): PROCESSVALUES : update plugged:false was:false stat:3 zone:16 was:16 send low:false

What kind of Android is installed? Froyo?
I mean what sdk level are you targeting?
The default minimum is Android 4.2 (API level 17). Also maybe you have to downgrade. The first build of Android mode was 0217 in 2013. You can download the sours code here

I’ve followed this post’s suggestions about changing the target level to 15 in a very simple test sketch, and got the same results I described before. I think it’s just not worth messing with the old Nook.
I’m not sure I want to jump straight into putting anything on Google Play, I was just hoping I could run some sketches on a tablet, maybe I’ll get an Amazon Fire tablet.
One last question on the subject, does going through the process of using a USB connection to run a sketch on an android device actually install it there so it can run untethered, or does it only run while there is a USB connection?

When the PC installs the APK it will run as a stand alone aplication. In the near future there will be a fast preview method, like the Processing app APDE has, that runs the sketch in seconds without actual installing. Because you mencioned a trade mark, I am using a cheap tablet, Samsung tab E 9 for 2 years now, and is my best buy ever. It’s as new, and the battery goes over 8 hours full light in continuous use. I use it 16 hours a day, and forgot about PC. Every thing is on my tablet because you can’t imagen an app that not exist on the store for every specific purpose.

thanks for the advice

One further question, I see the Amazon Fire 7 tablet on sale for $30, does anyone know if it allows the Processing sketches to run? I have read that it doesn’t work with Google Play apps, so it makes me wonder.

Amazon Fire 7 comes with Lollipop 5.1
Where is written that it doesn’t work with Google Play?
It will run sketches without a problem.

I guess not so much that it won’t work, but it takes some extra steps. https://www.howtogeek.com/232726/how-to-install-the-google-play-store-on-your-amazon-fire-tablet/

Before I bought my Samsung, I bought in one year two cheap phones, wich I had to repare anyhow. I spend more money then if I had bought my actually right away. My advice is; save some more, and buy a good one.

That’s what I was thinking. Thanks again

Does Android Studio run on the galaxy also?

“On” a Galaxy not. AS is for PC only. But you can run a virtual device on PC, or install an app via USB.
I do none of this, because I do not have a PC. I develope my processing sketches with the APDE app.

That looks promising. It looks like it may run on my nook, but I might have to try and update it to run full Android because it compiles but won’t install the package

I installed Android 7 on the nook, and APDE works. But unless I can get a mouse working, text selection is pretty much futile. Plus when I paste code from a google note, it doubles every line feed in the code with no apparent way to get rid of all the extra whitespace. So I may be back to just saving up for a better tablet anyway.

Hehe. I like that sort of thing. Nougat on a nook.
Why not a Kitkat? You realize that you are working on this for a month now? Hehe, now you can’t give up. Must be kind of slow not? Does the touch screen not work at all? That is quite common for custom builds.

It’s the first time I did something like this, all I did was burn an image that someone made for the nook and install two zips that they had already made, I don’t really know all that much.

The Nook is generally a bit more responsive than it had been, but still it’s slow to open and close things.

However, running sketches I don’t see much lag, it seems kind of normal once one is open.

Oh, and the battery. The battery drains faster than it can charge when it’s plugged in to the computer, but I guess after so many years that is to be expected.

The sketch I have here [Accumulate rotation with snapping]
runs, but for some reason, when I change just the size to size(1280, 1920) the text above all looks normal but the bottom clock face is bigger than the screen and is pixelated, I’m assuming that it’s something peculiar to the way I specified it’s size that APDE doesn’t like. But when I drag the clock hand around on the nook, it seems just as responsive as it is on the Mac and iCompiler for Processing app on the iPhone.

I can’t tolerate the number of times I have to try to get the cursor in the right place, and how I can so rarely get the copy and paste pop ups to appear. And if I add one more wireless keyboard/mouse to my collection I think my family will go crazy.

I am looking forward to see if sketches with Box 2d will work.

So, yeah, I think overall it has been pretty worthwhile and a good hold over until I can get a better tablet. I like making games that my 4yo can play, so being able to put them on the Nook will be nice so he can let me use my phone sometimes. :rofl: