Ionic 3 slow starting app on some device android - ionic-framework

I’m tried create new blank project ionic and after that I straight add android device with syntax ‘ionic cordova platform add android’, and in my file ‘main.ts’ I add some code 'enableProdMode().
Then I run to my device with syntax ‘cordova run android’ and ‘cordova run android --prod’. But the problem is in my first device (xiaomi mi 5) time of starting app is 5 second (I think that normal), but in my second device (samsung galaxy pro) time of starting app is about 20second (I think that not normal, it’s too long for open apps). So how to boost time starting app in some device which is too long open app?
note : there no other code, I just create project and run
Thanks

To increase the performance on the start you must implement the lazy loading using ionic page like this https://blog.paulhalliday.io/ionic-3-lazy-loading-components/
And turn off the components you don't need on the start.
#IonicPage({
name: 'my-page',
priority: 'off'
})
Another way is using the method ngOnInit() to leave the constructor clean and execute some functions after the component has start.

Related

Running google-vr unity daydream app on google pixel

Im trying to run the sample app provided in the daydream page on the google pixel phone.
1) I chnaged the build settings to android.
2) Went to player settings enabled Virtual reality support and selected google daydream as the platform.
3) I changed the Minumum API to API level 24.
4) I added the folder containing my adb to the path variable in windows.
5) I also set the path of the android SDk.
6) I enabled USB debuggin on Pixel
However when I run my app , I get the following errors:
Device daydream not supported in Editor Mode. Please run on target device.
And..
Failed to read from controller emulator app event socket.
Verify that the controller emulator app is running.
build the apk and start it on your device. build and play requires adb.
As I suppouse, you want to DEBUG your Daydream app on your Programming Environment (Unity in this case).
Note:This solution allows you to debug on your PC but you'll need one Pixel Phone connected to your PC, and one Daydream Controller.
First of all I recommend you to download the samples provided by Google on Github if you have not done it yet:
https://github.com/googlevr/gvr-unity-sdk/releases
When you load any scene you'll see that the Daydream basic set is composed for a hierarchy like:
The two selected components are key for your porpouse cause if you want to debug Daydream from your PC you'll need to "link" your daydream controller with InstantPreview App. Instant preview will downloaded instantly on your phone if you got in your scene the "GvrInstantPreviewMain".
InstanPreview Google Info: https://developers.google.com/vr/develop/unity/instant-preview
When the app has been opened, can happen 3 things on your pixel phone:
Everything works as it should.
Daydream Instant Preview infom to correct the device by USB.
Kind of Grey screen with some text.
If you're on 2.
This seems to happen when your Unity Project is desynchronized from your phone and you'll see something like:
Close InstantPreviewApplication on your phone, close your unity project (remember to save your progress), and open again your unity project. That has almost always solved me.
If you're on 3.
This seems to happens when instan preview is waiting for Unity Play Mode.
You only need to press Play on you Unity Poject.
Remember to press (and mantain) synchronize button on your Daydream controller if you can move the headset camera but can't find your controller reticle.
This works for me.
I also append my own Unity project with this scheme that works bought for Daydream and GearVR in case helps someone else to test my solution:
https://github.com/ls29322/VR_GalleryApp

Developing a google play app with HTC Desire

I've been a Java developer for 6 years, but this is my first foray into Android, and it's not going well.
I've set up a simple example app which uses google maps api v2 - it's just a single page: I copied it from one of the many helpful sites on this topic.
I then discovered that I can't run it in an emulator since it uses the google maps api v2, which requires google play. So I bought a device (HTC Desire).
Now the device doesn't show up in the eclipse run configuration. It shows up with ./adb devices just fine.
I thought maybe this was because the device is on Android 2.2, and my app has minimum OS level of 4.2. So I tried to upgrade, but I couldn't work out how. In the software / update section on the phone it just says 'no updates available'. Can this be right?
Ok so assuming I can't upgrade the OS (in which case the phone is now useless), I modified the project so the minSdkVersion is now 8. But now my project won't build!
Errors include 'No resource identifier found for attribute 'showAsAction' in package 'android'' - what does that even mean?
And to cap it all the device is now doing the 'buzzing 7 times instead of booting' thing. I can access some menu called HBOOT, and selecting RECOVERY just reboots the machine, which fails.
So now I've spent £50 and several hours, and I haven't even got as far as hello world - just a bricked phone.
What am I doing wrong? Can Android dev really be this hard?

Running eclipse project on android device

i'm new into programming for android. And i have few problems with connecting and debugging my eclipse project on android device - which is my phone Samsung Galaxy SIII. According to this link I tried to launch my app on my phone. Saddly when i press run button it tells me that there's no android device connected. And as you may know im not that dumm to not plug it into my computer. Additionally i have USB Debug mode ticked in options. My PC recognises it as "SAMSUNG Android ADB Device".
Some of you might say that i should start using emulator to have better view how this app will work on other phones/versions of android/etc. Thing is that my PC is quite old, and running an emulator makes it respond so slowly that it's nearly impossible to do anything on this emulated device. Plus... im quite sure that i wont publish this app on play store so i dont need to know if it will work on other devices. I just want to make a weather widget for me since stock one that uses accuweather.com tends to fail weather forecast for my country (like it says heavy rain on sunny day).
So here are the things that i have done so far to try to launch:
1. Uninstalled device and set some new drivers that should have helped me - saddly not ;]
2. Tried launching it via command line
3. I found somewhere on the Internet that it is possible to connect and test your app via WiFi using tcpip over 5555 port... saddly it failed too.
Any ideas what else should i try to make it work?

Appcelerator, Android Emulator Build Speed Suggestions

So, attempting to figure out if there was a way to use the arguments in the runtime config I ran across my biggest runtime boast yet, calling the Appcelerator build script for the Android Emulator from the command-line, here's what I mean:
<full-path-to-python.exe> <full-path-2-.../android/builder.py> emulator <project-name> <android-sdk> <project-dir> <project-id> <avd-name>
Example:
"C:\Program Files\Appcelerator\Titanium Studio\plugins\com.appcelerator.titanium.python.win32_1.0.0.1331647813\python\python.exe" "C:\Documents and Settings\user\Application Data\Titanium\mobilesdk\win32\2.0.1.GA2\android\builder.py" emulator JavaHomeBug "C:\Program Files\Android\android-sdk" "C:\Documents and Settings\username\My Documents\Titanium Studio Workspace\JavaHomeBug" tld.domain.JavaHomeBug titanium_1_HVGA
Are there any other ways to get the emulator to load faster, including but not limited not executing anything but the app?
This might not be exactly what your looking for but helps a lot with making changes and viewing them in the emulator.
Appcelerator implemented a festDev server. meaning that you can launch an app in the android emulator and leave it open, as you make changes to the code travel back through pages to make the page be reloaded and the new code will be pulled in.
For example going page 1 -> page 2,
then making a change on page 2,
click back button to go to page 1, now when go to page 2 you'll see your changes.
Takes a hige amount of time off waiting for the emulator to load up each time you change 1 or 2 lines

cordova/phonegap 1.6 crash at second launch

i use xcode 4.3.2 with phonegap 1.6. my app runs well the first time, but if i close the app in the ios simulator and i launch it for the second time, it crashes. Why?
This is probably only in the simulator. I have had it a couple of times in the simulator but it never happened to me on-device.
I am currently having this issue, except in Android. This is with the release flag. More info can be found here: https://forum.ionicframework.com/t/v2-android-second-app-start-doesnt-work-for-release-version/125583
but here is a copy pasta in case the link goes down:
Synopsis:
My app has a canvas on it on the page html. On second start of initial install, app start doesn’t show canvas. I know because the body tag has a background and the canvas has a different background. The page does not have a module defined for it. This is only when built with --release
Environment:
Ionic: 3.20
Cordova: 7.1.0
Angular: 5.2.9
Android: 6.1.2 (I think build target 25)
jdk: 1.8
Additional Info:
I am sort of doing bleeding edge stuff, but I am now out of the realm of being able to solve this on my own. I am using pixi.js, specifically from an additional interface library called angular2pixi. A2p doesn’t support --aot building.
Before I go on, let me reiterate everything works, even on multiple app restarts for everything other than --release.
The top level architecture is fairly simple:
a2p provides a service that has an instance of pixi. My app uses that service and has a page with a canvas awaiting Pixi’s rendering. When the app initializes, it starts up the pixi service, passing it the canvas reference and voila: html5ified angular.
I have offloaded the actual initialization of the rendering to a user clicked button to make sure it’s not something to do with life cycles but that didn’t work either. Even more interestingly, the button I made didn’t show when the app didn’t load. So likely, this means the ion-content itself isn’t showing!
Most interestingly, if I go into app info and delete storage (not cache) then it works on next app start! I am using localstorage but I attempted removing all mentions of it and no luck. ALSO On second install, or rather what would more technically be an update, the app works on every start after that.
This happens on android and I can’t seem to replicate it in iOS other than the first time I tried. Because it is a release build, it’s difficult to debug. I attempted using Ionic Pro Monitoring to no avail.
So far, my leanings are:
some type of caching causing a bug with the canvas itself
an error that is causing cordova or ionic to terminate
problem with my build process
a2p’s architecture (how could I go about debugging this given I have little knowledge of the underlying mechanics of cordova/ng2 -> native compilation?)
a cordova plugin (perhaps causing one of the above)
So as you can probably tell from my formatting, I’m somewhere between nerd heaven and hell. Such a fascinating problem… but plis halp