Related
Are there any plans to implement a Button into the App-Manager, to move the Data-Part of an app to the /ext2 Partition ?
Especially on low memory devices (like the G1) this will give us the chance to install a lot of apps without runnung to "low space on device".
I have written a very small bash-script to manually do this job, but it would be more comfortable with a Button.
move.sh
Code:
#!/system/bin/sh
#
#data_to_move=com.alk.copilot
#data_to_move=com.camelgames.blowup
#data_to_move=com.drodin.tuxrider
#data_to_move=com.gameloft.android.AMEU.GloftAsphalt5.asphalt5
#data_to_move=com.navigon.navigator
#data_to_move=com.polarbit.ironsightlite
#data_to_move=com.polarbit.ragingthunder
#data_to_move=com.polarbit.rthunder2
#data_to_move=com.polarbit.waveblazerlite
#data_to_move=com.estrongs.android.pop
su
mount -o remount,rw /data
mkdir /sd-ext/data
cd /data/data
echo About to Move ${data_to_move}
cp -r -p ${data_to_move} /sd-ext/data
rm -r -f ${data_to_move}
ln -s /sd-ext/data/${data_to_move} ${data_to_move}
unmove.sh
Code:
#!/system/bin/sh
#
#data_to_move=com.alk.copilot
#data_to_move=com.camelgames.blowup
#data_to_move=com.drodin.tuxrider
#data_to_move=com.gameloft.android.AMEU.GloftAsphalt5.asphalt5
#data_to_move=com.navigon.navigator
#data_to_move=com.polarbit.ironsightlite
#data_to_move=com.polarbit.ragingthunder
#data_to_move=com.polarbit.rthunder2
#data_to_move=com.polarbit.waveblazerlite
#data_to_move=com.estrongs.android.pop
su
mount -o remount,rw /data
mkdir /sd-ext/data
cd /data/data
echo About to unMove ${data_to_move}
rm ${data_to_move}
mkdir ${data_to_move}
cp -r -p /sd-ext/data/${data_to_move} ${data_to_move}
Apps that need lots of space should use the fat32 partition gracefully, using this hack would considerably slow down your system(even class6). Why double the reads and writes to the slow mmc?
Because not all apps using the fat32-Partition.
Navigon for example uses 14 MB of internal storage.
If you install such apps on a G1, you can quickly run out of space.
Low on cache space will considerably slow down the overall system performance.
I would not suggest to move the data of any installed apps, but from the big ones.
Apps like Navigation and 3D-Games are writing not frequently their data and if you own a G1 you are already swapping when using an Eclaid based ROM. So this wouldn't make a big difference in the livetime of your sdcard.
Perhaps someone could implement a partial move (e.g. only libraries) to avoid massive writes to the card ... and/or setting a threshold value, so apps with small data could not be moved.
For me, moving the apps in the Script above has given me additional 35 MB internal space and everything is still runnung "fast".
/data/data
TheGenesis said:
Because not all apps using the fat32-Partition.
Navigon for example uses 14 MB of internal storage.
If you install such apps on a G1, you can quickly run out of space.
Low on cache space will considerably slow down the overall system performance.
I would not suggest to move the data of any installed apps, but from the big ones.
Apps like Navigation and 3D-Games are writing not frequently their data and if you own a G1 you are already swapping when using an Eclaid based ROM. So this wouldn't make a big difference in the livetime of your sdcard.
Perhaps someone could implement a partial move (e.g. only libraries) to avoid massive writes to the card ... and/or setting a threshold value, so apps with small data could not be moved.
For me, moving the apps in the Script above has given me additional 35 MB internal space and everything is still runnung "fast".
Click to expand...
Click to collapse
there is already a script in existance to move things like that:
# lucid -d -sd
would move app data to the sdcard and symlink .. this (however) does not move individual pieces .. i would be interested to know the speed difference on these apps that you moved .. also .. this will create extra difficulty when attempting any nandroid backup/restore .. i have seen people putting up comments because their phone crashed due to the excessive number of symlinks across the phone .. if you are not careful with them you could lose all your data
The Space allocated by the "big apps" is mainly used by their ./lib dir. Because of this, it would be enough to move and symlink only those dirs.
With Games the "rest" goes to settings and scores.
On a G1 there is absolutely no difference in speed when moving data to sd.
Perhaps its because the G1 is not the top performer at all
I have played those games in the list with data in internal and on sd-ext and there is no difference in speed ... loading time is also the same.
I'm satisfied with the results, but these scripts didn't remove the data when apps where uninstalled or re-installed and thats the reason of my request.
Take a look on your storage and see how much space (libraries) should be on the sdcard.
Code:
du -sk /data/data/* | sort -rn | head
btw ... did you ever enabled JIT on a G1 and played ExZeus or Armageddon Squadron ?
Its amazing what is possible on this "outdated" Hardware!
P.S. Nandroid Backup runs perfectly with this symlinks (no recursive/double Backups)
Update:
Nandroid Backup only saves app and app-private ... could you edit this to save everything excluding "crap-dirs" ?
If nandbackup uses standard tar calls, you can use the following command:
Code:
tar pcvf /sdcard/nandroid/sd-ext.tar . -C /sd-ext --exclude dalvik-cache --exclude lost+found
... it would save everything the user place on the partition including userinit.sh
Restoring such a tarball works perfectly with nandbackup.
Thx in advance
Thom
Int. mem for SWAP ?
well, after the moving some heavy apps data
I have 54mb free Int. mem (out of 90)
is that possible to use 24-32mb of this (fast?)memory
for SWAP ? instead of linux swap
and does it make any sense?
...just tried to enable /swapfile.swp via Swapper2
though it says
-creating swap - ok
-changing permission - ok
-formatting swap - ok
but
- enabling swap(file) - FAIL
sorry if it's just another stupid question
G1, stock cm5.0.8 test4, 32mb linux swap
TheGenesis said:
Update:
Nandroid Backup only saves app and app-private ... could you edit this to save everything excluding "crap-dirs" ?
If nandbackup uses standard tar calls, you can use the following command:
Code:
tar pcvf /sdcard/nandroid/sd-ext.tar . -C /sd-ext --exclude dalvik-cache --exclude lost+found
... it would save everything the user place on the partition including userinit.sh
Restoring such a tarball works perfectly with nandbackup.
Thx in advance
Thom
Click to expand...
Click to collapse
Have you tried BART? http://forum.xda-developers.com/showthread.php?t=562292
It's included in the recovery, and lets you backup/not_backup whatever you want.
zelipukin said:
well, after the moving some heavy apps data
I have 54mb free Int. mem (out of 90)
is that possible to use 24-32mb of this (fast?)memory
for SWAP ? instead of linux swap
and does it make any sense?
...just tried to enable /swapfile.swp via Swapper2
though it says
-creating swap - ok
-changing permission - ok
-formatting swap - ok
but
- enabling swap(file) - FAIL
sorry if it's just another stupid question
G1, stock cm5.0.8 test4, 32mb linux swap
Click to expand...
Click to collapse
It's not a stupid question ... I have had the same Idea yesterday ...
I have googled about life spawn of the internal flash memory, but I haven't found any satisfactory answer yet.
Anywhere here who know how fast the internal flash is ?
What about write cycles and wear levelling ?
If it has no integrated wear levelling, swapping will kill the phone in a few days.
I think your enable swap has failed due to wrong permissions ... try to enable with a defered call in your userinit.
Update: I have checked my filesystem ... /cache has actually 29 MB free ... is it correct, that /cache is only used by OTA updates ? Probably we can create a priorized swap there in addition to ext.
Keep up the good work dude...this sounds great
TheGenesis said:
Navigon for example uses 14 MB of internal storage.
If you install such apps on a G1, you can quickly run out of space.
Low on cache space will considerably slow down the overall system performance.
I would not suggest to move the data of any installed apps, but from the big ones.
Apps like Navigation and 3D-Games are writing not frequently their data and if you own a G1 you are already swapping when using an Eclaid based ROM. So this wouldn't make a big difference in the livetime of your sdcard.
Perhaps someone could implement a partial move (e.g. only libraries) to avoid massive writes to the card ... and/or setting a threshold value, so apps with small data could not be moved.
For me, moving the apps in the Script above has given me additional 35 MB internal space and everything is still runnung "fast".
Click to expand...
Click to collapse
If navigon is using that much internal storage it's a very poorly written application. Low cache doesn't slow the system down, just apps that require such huge amounts of it.
I'm already swapping when using Eclair? Wrong, using swap on the sdcard is horrible, I'd never recommend it to anyone and I personally don't use it. I have 114 apps installed and my cache is 9% used, it seems to me like your apps aren't clearing their cache correctly, or they're just poorly written. The argument that 'you are already swapping so this wouldn't make a big difference in the livetime of your sdcard' is untrue, you are effectively doubling the amount of read/writes to the mmc, if not more, so the lifetime could potentially be cut in half, of course depending on use.
I'd say nice try, but this really just working around crap apps.
I use a 16 GB class 6 SD-Card with static wear-levelling.
Assuming that a standard-flash-nand-cell lasts about 10.000 write cycles, and my swap-write-turnover is currently about 1,6 GB per day, my SD-Card will last about 273 years (minus regular writes).
So I don't care about livetime.
Besides Navigon, there are many apps, that store their huge libraries to /data .... Games in most cases ... If you aren't using "bad written apps" its fine for YOU ... everyone else has to do some tweaks when installing some of them to the limited internal storage.
I have 278 apps installed and the only limit for me, is currently the free space on my sdcard.
If you haven't enabled swap since you have flashed your first Eclair ROM, you have probably never felt what is "speed" or you never need more than 1 app running simultaniously .... or you are using a different phone instead of a G1
You say "swapping to sd is horrible" ... I think you have used the wrong parameters ... when I diable swapping my system is lagging ... even when I work with one app the same time.
Did you enabled compcache while swapping ? Did you use a swapfile on FAT32 ? Is your swappinness levor 50 or above 60 ? Are you using al class 4 or slower sd-card ? Are you running heavy memory consuming apps without killing them from time to time ?
All these can turn a fast swapping system into an unusable phone.
You cannot enable swap and use the system like before.
Update:
I have copied 18 MB from cache to data and it tooks round about 18 seconds.
Same file from sdcard (FAT32) to sdcard tooks 6 seconds ...
I will use the sdcard
I should have listened to internal voice telling me not to argue with a fool cause people might not know the difference..
Something strange
I did some stupid (owing to absence of linux knowledge)
experiments regarding to swap_2_/
I believe if it possible it should be done through userinit/config
or smth during boot to enable r/w. give necc permissions etc.
I just used Swapper and RootManager
If I create .swp (it creates but does not work) in any place but /cache
it (just existence of this file) does system unstable, slow and unresponsive
in /cache or any existing or newly created folders inside /cache/ it's OK
before reboot when those new folders/files disappear
=
After a wile something happened with my phone (not a first or last time)
many apps caused FC, settings were lost etc
tried "fix uid missmatches" - dots filled out numerous screens
and after ~20min I decided to reboot
tried nandroid - same endless ....................................................
after the reboot I found no FCs but still missing settings for some apps
(sim_linked_data apps like CoPilot were OK) so I Titaniumed non-working apps
data (5-6 apps) and evrthng seems fine
=
BUT when I look at internal memory available
I find 73Mb (out of ~90) FREE
there was 53Mb free before the accident
Is that normal? And whats the limit?
I have my laps and brain scratched to find some application of this
=
just my experience
-compcache always gives me horrible slow phone - not using
-linux swap - best results compare to no_swap - allways use
Some apps are storing many data to /data and sometimes to /cache.
I think your restores have cleared some of them.
Try CacheMate instead of such manouvers
I have checked the write throughput using dd:
Internal Storage: 3,5 MB/s
Class 6 SD Card: 7 MB/s
... annoying ... USB to SD-Card is 3,5 MB/s and SD-Card via Card-Reader (PC) is about 9 MB/s.
Hey man, i had the same problem and decided to go a head and write a small tool that does exactly this, this is a UI tool that shows all the folders in /data/data (excluding system folders) and let you move your apps to your sd, you should have an APP2SD ROM installed with root (of-course) and sd card partitioned to EXT and FAT32.
Contact me if you want to check it out, i never found the time to publish it ([email protected])
hi,
I have tried that and it works, but...it works until reboot...
After reboot I don't see directory /sd-ext/data....
I don't know why it always been deleted....
I've been playing with ways of moving data from /data/data to SD that do not involve any partitioning of SD, as an idea for a new feature for my Force2SD app. Specifically, I'd like to be able to move the lib directories for various apps, as some of the libs take up a ton of space. (Moving the other directories might potentially cause ownership problems, especially when moving data back, but the lib directory has owner 1000, which is the same as /storage on my Archos 43.)
Anyway, I was surprised that in a root shell
Code:
mount -o exec,remount /mnt/storage
works just fine. Moreover, it also works fine when I call up the root shell from a MEDIA_INSERTED broadcast receiver, which is even better.
I do have two questions:
1. Is there any reason I'm now aware of not to move /data/data/app.name/lib to /sdcard for apps that have already been moved to /sdcard by Froyo (and up)? Once one remounts /mnt/storage, a simple symbolic link seems to be enough--I tried it with Google Earth. I suppose there are security issues. How much should I worry about that?
2. Is there an easy way to find out where the official external storage -- the external storage pointed to with getExternalStorageDirectory() -- is mounted? Is it, perhaps, always mounted on /mnt/storage, or do different devices have different mount points? The best way I can think of is executing df dirname, where dirname is whatever getExternalStorageDirectory() returns, but that's slightly slow, and I don't want to slow things down in the MEDIA_INSERTED receiver.
I'm continuing experimenting. I made a tiny app that remounts media with the exec option whenever media is mounted. Then I moved the /data/data/*/lib directories for Google Maps, Google Earth, Reckless Racing Lite, Adobe Air and Netflix to a /storage directory, saving about 50mb. I had some crashes in Reckless Racing, but I think they had something to do with a problem with the ad server, not with the lib, and now it works fine. The other apps seem to work just fine, too.
The apps themselves were already moved to external storage (with Force2SD in the case of some of them), so there isn't going to be any issue of the app needing the lib before external storage is mounted.
Of course, it's going to be a nuisance when the app updates. I am guessing it'll update just fine, but leave me with an orphaned lib directory.
OK, here's a problem, which may or may not be related to this: every so often, the device slows to a crawl, and logcat shows continual index errors on one of the mmcblk devices (alas, I didn't note which one). For the next experiment, I'm moving the libs from the internal drive to an external SD card.
I figured out that with a rooted device you can trick the tablet into using the extsdcard. Works on both my tab 4 7 and tab 4 10.1. A simple script that has a single command as follows. mount -o bind /storage/emulated/0 /mnt/media_rw/extSdCard. When this is run at boot and I uninstall an app and reinstall, I gain free space on the internal card. It does however seem that the external doesn't show it being there. So I think it screws up the actual reported free space on the external. A better solution or improvement would be appreciated. enjoy.
Omniscious said:
I figured out that with a rooted device you can trick the tablet into using the extsdcard. Works on both my tab 4 7 and tab 4 10.1. A simple script that has a single command as follows. mount -o bind /storage/emulated/0 /mnt/media_rw/extSdCard. When this is run at boot and I uninstall an app and reinstall, I gain free space on the internal card. It does however seem that the external doesn't show it being there. So I think it screws up the actual reported free space on the external. A better solution or improvement would be appreciated. enjoy.
Click to expand...
Click to collapse
the devices even some lg's i noticed have an "emulated" storage for instance the tab 4 7 states 0 , legacy which is different then what ive seen before ie my s2 my blaze etc
not sure
Not sure if it worked. And to let you know, I believe the internal could be the emu0lated one. And the storage low sfill comes up.
You could use foldermount app in the play store....at least for now until a better option comes around... It was a great help for the lg optimus f3....which by the way has 2gb internal...not to bash on it completely it had battery life like an old flip phone
Xposed mods will also accomplish this.
Ok, so off and on I have been doing some looking around on how to move things from teh internal storage to the external.
Then I had a question.
I know that these programs create an "image" i guess of the stuff that is supposed to be on the internal making the system think its still there. With the mount and this "image" taking up "space" - are you ever able to actually make the device think you have freed up space and install more things?? Does it really actually make any sense to do any of these things?
I played around with a few in directory bind, and while my external availability number changed, my internals didnt. i checked both with the binds active and disabled. the numbers were exactly the same.
At first i was thinking that maybe you would have to temporarily unbind one thing (to remove the image from the internal) and install the new thing, create a new bind for the new thing, and then renable both the old and new things.... but with the internal numbers not changing even with binds off (stuff only on external) this doesnt make sense either.
has anyone run into this and found a solution??
In this thread I want to share my thoughts and experiences on how to optimize storage and memory for a phone with low internal memory and with access to an SD card, for example like the LG G4S (model H735) with only 8GB internal memory and 1.5GB RAM.
I'm happy to hear more suggestions to optimize!
First of all, you need to root your phone. Find out how to do this for your individual model.
Once you're rooted, you can optimize your storage and memory:
Get a good SD card with fast read and write speeds! This is crucial as you're going to be running lots of apps from it. Get a 32GB (or if your phone supports more, then more!).
You should partition your SD card so that you can make a second partition with the ext4 file system used by Android. Only then will you be able to move almost all your apps to SD! See notes below on how to partition your SD card.
You can now use the excellent Link2SD app to do all of the cleaning tasks:
Moving & linking apps & data to SD
Uninstall system apps
By default, you will only be able to move the "user" apps (the ones which were not installed as part of the system, e.g. the ones you installed yourself). But we can get around this with many apps! This is described below (in 4.).
You may have noticed that when you switch between apps, e.g. between your game and your messaging app, every time you switch, the app reloads (e.g. the game takes ages to start up again). This is because your RAM (main memory) usage is not optimized. You can also do something which is likely fix this, which I will describe below (in 5.).
1. A word about data usage of an app
You may have wondered why your memory usage is still so high when you moved your app to an SD card with the classic Android "Move to SD" functionality (which you can access via the Android app settings).
Well, the classic Android "Move to SD" only moves the app. But often the bulk of the data is actually not in the app itself, but in the data and OBB files of the app! In games, this can be up to several gigabytes. And this stuff remains on your internal storage! So we will need to move this as well, and then "link" to the moved data, so the Android OS "believes" that the data is still on internal storage. Imagine this similar to doing a (soft)link to a file on your computer.
Also, doing it this way ("linking") is much better than the classic Android move-apps. For example, you can avoid problems with widgets which may not run any more once they have been moved to SD with Android move-apps.
There are a few apps which can help you move&link your apps and data. I have tried a few, and in my opinion Link2SD is the best, as it
already detects if your app uses OBB and data files
you can easily display the apps which use most storage (also in terms of data files!)
and you can also uninstall system apps more reliably than with other root apps!
You will need to get the pro version in order to do everything with it, but this is $2 well worth spending, you won't need any other apps for managing the moving. It's much easier than e.g. FolderMount to easily move all the relevant data of an app to SD.
2. The partitions on your phone
Most likely, your phone will be using different partitions on the internal storage for different purposes. For example, there may be a partition which is exclusively to be used for the "system" (the Android OS and system applications).
You can use an app like Disk Info to show the partitions on your internal storage (and SD card) and how much space is still free on them.
This may vary between phones, but in most cases you should find a "data" partition or similar, which is used for
Applications installed by you
Updates of system apps (!!!)
Data, Cache, OBB files etc. used by your apps
The size of this data partition is pretty much what you can get out of your internal storage: if you move everything out of there, this is the maximum free space you can get (again, it may vary from phone to phone). You cannot easily get access to the system and cache partition to use as storage space, and you shouldn't try to mess with that anyway.
So what you can try to do, is shove as much as possible out of the data partition onto your SD card. The free space on data can then be used as a "buffer" when you download and install applications, before you move&link them onto the SD card.
Note also that your data partition is used for updates which may have been automatically downloaded. This may take up a significant chunk of your data partition! So you may want to either:
Move the whole system app to SD card (see below described for Link2SD).
Or, "merge" the updates into the main app, so that it then resides on the system partition again.
To merge the update with the main app, long-tap (tap and hold) on the app in Link2SD and select Integrate app into system. However keep an eye on the free disk space on the system partition, you don't want it to get too close to using full capacity! So only merge updates when you're sure there is enough free space on /system.
3. Partition your SD card
It is important that you create a second partition on your SD card, formatted with the ext4 file system used by Android. Only then will you be able to move all apps completely onto SD.
On Windows, you can use Mini Tool Partition Wizard to partition your SD card and format the second partition as ext4. I won't go into detailed instructions here, there's other documentation for this on-line.
Only a few notes:
It is important that you format the ext4 partition as "primary" also!!!
You can also "resize" the first partition (the FAT32 which may already be on it), without losing your data. However if something goes wrong, you may lose the data anyway, so it's advisable to backup your data on the SD card before.
You may want to keep a FAT32 partition (also formatted as primary), because on windows systems you cannot easily read ext4, so you may want to use the FAT partition to store your pictures etc., which you can then also read from a Windows computer.
4. Use Link2SD to move your apps
Open Link2SD and you will see a list of your apps. On the top bar you can select to display only apps of certain types, e.g. "user" and "system" apps. And you can also sort them according to different criteria, e.g. "Name" or "Size". I often use "Size (total)" in the bottom of the sorting criteria list. This shows the apps which use the most data overall first.
First, we will move the "user" apps to SD.
Display all the "user" apps and click on the first one you want to move & link to SD.
You will see a detailed list of your app and data usage.
You will see buttons to Link to SD card or Remove link. Below this, you see a field titled Android App2SD in which you can Move to SD Card --- this is the classic Android way to move apps: don't use this! Use Link to SD Card instead
After selecting Link to SD card , you can tick the boxes for everything you would like to move (app/cache/internal data...), and then click OK. Link2SD will move all your stuff to the ext4 partition of your SD card and then also link to it.
The apps which also use OBB files and extra data/cache will display extra boxes in Link2SD. Try a game app for example to see this, large games are likely to use this. You can click Link to SD for these extra files also, and it'll be all moved to your SD! Warning: I've had problems particularly with moving OBB files, sometimes also with data files -- the app was not launching properly after I've moved the OBBs. This is not the fault of Link2SD though, I've had the same problems with other apps like for example FolderMount.
If you want to undo the linking, just use Link2SD and select Remove Link. All your data will be moved back to internal storage, and the link will be removed. All back to how it was before. Easy!
Now you may also want to move system apps to SD to create even more space. While system apps natively reside on the /system partition (see 2. above), they also may store data and cache on the /data partition. Or, you may also want to create more space in the /system partition by moving system apps to SD.
The problem is, even though you are rooted, you cannot move the system apps. And for many of the system apps, you shouldn't do this either. However, it is safe to do this for apps which are installed as "system" but not really an integral part of the OS, such as
Chrome
Google maps
Google docs
Google drive
YouTube
and more.
To move them, you can use Link2SD to convert them from "system" app to "user" app.
Open Link2SD and long-tap (tap and hold) on the app to open the options menu. If you have a Convert to user app option, that's that!
If you don't have the conversion option, you can try something else:
Uninstall the app first by long-tapping on the app in Link2SD, and selecting Uninstall. But first make sure you will be able to download this app from Google Play!
You will need to reboot the phone.
Re-install the app from Google Play.
Now, you can use Link2SD to link the app to SD as we did for the user apps before.
Important: Never to this for core system apps, and I would also not touch Google Play or any of its services.
Note: You may also consider to just merge the updates of a system app so that it resides in the /system partition again. See description above (2.) for more details.
5. Optimizing your RAM
What I found particularly annoying on my LG G4S (H735) is that whenever I switched between my game (large files) and another app (e.g. messaging app), the game would load up from scratch again, which would take a few minutes. The reason for this is that the default settings on the phone were set to keep a too big part of the memory "free", so other apps were "killed" as soon as I was using my game. When I then switched back to home screen, all the other apps had to be re-launched, and my game instead "killed" again.
You can decrease the threshold of reserved free memory by editing the build props. There's a risk to get an unstable system if you tweak this too much, but if you try carefully, it may be ok. And you can also reset it to defaults if you're not happy with the results.
You will need a build prop editor, for example the Build Prop Editor app. Open it, and click on the "edit" pencil below to edit the following values:
ro.sys.fw.mOomMinFree1=...
ro.sys.fw.mOomMinFree2=...
ro.sys.fw.mOomMinFree3=...
ro.sys.fw.mOomMinFree4=...
ro.sys.fw.mOomMinFree5=...
ro.sys.fw.mOomMinFree6=...
It worked like a treat on my phone (LG G4S with 1.5GB RAM) and was also reported to work nicely with the LG G3, using the following values:
ro.sys.fw.mOomMinFree1=49152 (unchanged)
ro.sys.fw.mOomMinFree2=61440 (unchanged)
ro.sys.fw.mOomMinFree3=65000 (was set to 73728 originally)
ro.sys.fw.mOomMinFree4=70000 (was set to 204800 originally)
ro.sys.fw.mOomMinFree5=80000 (was set to 262144 originally)
ro.sys.fw.mOomMinFree6=100000 (was set to 327680 originally)
Please share your experiences if you have some tipps to further optimize low-memory phones! Thanks
See also
http://forums.androidcentral.com/lg...ry-using-link2sd-w-pros-cons-vs-data2ext.html
http://www.link2sd.info/faq
jen.magnolis said:
In this thread I want to share my thoughts and experiences on how to optimize storage and memory for a phone with low internal memory and with access to an SD card, for example like the LG G4S (model H735) with only 8GB internal memory and 1.5GB RAM.
I'm happy to hear more suggestions to optimize!
First of all, you need to root your phone. Find out how to do this for your individual model.
Once you're rooted, you can optimize your storage and memory:
Get a good SD card with fast read and write speeds! This is crucial as you're going to be running lots of apps from it. Get a 32GB (or if your phone supports more, then more!).
You should partition your SD card so that you can make a second partition with the ext4 file system used by Android. Only then will you be able to move almost all your apps to SD! See notes below on how to partition your SD card.
You can now use the excellent Link2SD app to do all of the cleaning tasks:
Moving & linking apps & data to SD
Uninstall system apps
By default, you will only be able to move the "user" apps (the ones which were not installed as part of the system, e.g. the ones you installed yourself). But we can get around this with many apps! This is described below (in 4.).
You may have noticed that when you switch between apps, e.g. between your game and your messaging app, every time you switch, the app reloads (e.g. the game takes ages to start up again). This is because your RAM (main memory) usage is not optimized. You can also do something which is likely fix this, which I will describe below (in 5.).
1. A word about data usage of an app
You may have wondered why your memory usage is still so high when you moved your app to an SD card with the classic Android "Move to SD" functionality (which you can access via the Android app settings).
Well, the classic Android "Move to SD" only moves the app. But often the bulk of the data is actually not in the app itself, but in the data and OBB files of the app! In games, this can be up to several gigabytes. And this stuff remains on your internal storage! So we will need to move this as well, and then "link" to the moved data, so the Android OS "believes" that the data is still on internal storage. Imagine this similar to doing a (soft)link to a file on your computer.
Also, doing it this way ("linking") is much better than the classic Android move-apps. For example, you can avoid problems with widgets which may not run any more once they have been moved to SD with Android move-apps.
There are a few apps which can help you move&link your apps and data. I have tried a few, and in my opinion Link2SD is the best, as it
already detects if your app uses OBB and data files
you can easily display the apps which use most storage (also in terms of data files!)
and you can also uninstall system apps more reliably than with other root apps!
You will need to get the pro version in order to do everything with it, but this is $2 well worth spending, you won't need any other apps for managing the moving. It's much easier than e.g. FolderMount to easily move all the relevant data of an app to SD.
2. The partitions on your phone
Most likely, your phone will be using different partitions on the internal storage for different purposes. For example, there may be a partition which is exclusively to be used for the "system" (the Android OS and system applications).
You can use an app like Disk Info to show the partitions on your internal storage (and SD card) and how much space is still free on them.
This may vary between phones, but in most cases you should find a "data" partition or similar, which is used for
Applications installed by you
Updates of system apps (!!!)
Data, Cache, OBB files etc. used by your apps
The size of this data partition is pretty much what you can get out of your internal storage: if you move everything out of there, this is the maximum free space you can get (again, it may vary from phone to phone). You cannot easily get access to the system and cache partition to use as storage space, and you shouldn't try to mess with that anyway.
So what you can try to do, is shove as much as possible out of the data partition onto your SD card. The free space on data can then be used as a "buffer" when you download and install applications, before you move&link them onto the SD card.
Note also that your data partition is used for updates which may have been automatically downloaded. This may take up a significant chunk of your data partition! So you may want to either:
Move the whole system app to SD card (see below described for Link2SD).
Or, "merge" the updates into the main app, so that it then resides on the system partition again.
To merge the update with the main app, long-tap (tap and hold) on the app in Link2SD and select Integrate app into system. However keep an eye on the free disk space on the system partition, you don't want it to get too close to using full capacity! So only merge updates when you're sure there is enough free space on /system.
3. Partition your SD card
It is important that you create a second partition on your SD card, formatted with the ext4 file system used by Android. Only then will you be able to move all apps completely onto SD.
On Windows, you can use Mini Tool Partition Wizard to partition your SD card and format the second partition as ext4. I won't go into detailed instructions here, there's other documentation for this on-line.
Only a few notes:
It is important that you format the ext4 partition as "primary" also!!!
You can also "resize" the first partition (the FAT32 which may already be on it), without losing your data. However if something goes wrong, you may lose the data anyway, so it's advisable to backup your data on the SD card before.
You may want to keep a FAT32 partition (also formatted as primary), because on windows systems you cannot easily read ext4, so you may want to use the FAT partition to store your pictures etc., which you can then also read from a Windows computer.
4. Use Link2SD to move your apps
Open Link2SD and you will see a list of your apps. On the top bar you can select to display only apps of certain types, e.g. "user" and "system" apps. And you can also sort them according to different criteria, e.g. "Name" or "Size". I often use "Size (total)" in the bottom of the sorting criteria list. This shows the apps which use the most data overall first.
First, we will move the "user" apps to SD.
Display all the "user" apps and click on the first one you want to move & link to SD.
You will see a detailed list of your app and data usage.
You will see buttons to Link to SD card or Remove link. Below this, you see a field titled Android App2SD in which you can Move to SD Card --- this is the classic Android way to move apps: don't use this! Use Link to SD Card instead
After selecting Link to SD card , you can tick the boxes for everything you would like to move (app/cache/internal data...), and then click OK. Link2SD will move all your stuff to the ext4 partition of your SD card and then also link to it.
The apps which also use OBB files and extra data/cache will display extra boxes in Link2SD. Try a game app for example to see this, large games are likely to use this. You can click Link to SD for these extra files also, and it'll be all moved to your SD! Warning: I've had problems particularly with moving OBB files, sometimes also with data files -- the app was not launching properly after I've moved the OBBs. This is not the fault of Link2SD though, I've had the same problems with other apps like for example FolderMount.
If you want to undo the linking, just use Link2SD and select Remove Link. All your data will be moved back to internal storage, and the link will be removed. All back to how it was before. Easy!
Now you may also want to move system apps to SD to create even more space. While system apps natively reside on the /system partition (see 2. above), they also may store data and cache on the /data partition. Or, you may also want to create more space in the /system partition by moving system apps to SD.
The problem is, even though you are rooted, you cannot move the system apps. And for many of the system apps, you shouldn't do this either. However, it is safe to do this for apps which are installed as "system" but not really an integral part of the OS, such as
Chrome
Google maps
Google docs
Google drive
YouTube
and more.
To move them, you can use Link2SD to convert them from "system" app to "user" app.
Open Link2SD and long-tap (tap and hold) on the app to open the options menu. If you have a Convert to user app option, that's that!
If you don't have the conversion option, you can try something else:
Uninstall the app first by long-tapping on the app in Link2SD, and selecting Uninstall. But first make sure you will be able to download this app from Google Play!
You will need to reboot the phone.
Re-install the app from Google Play.
Now, you can use Link2SD to link the app to SD as we did for the user apps before.
Important: Never to this for core system apps, and I would also not touch Google Play or any of its services.
Note: You may also consider to just merge the updates of a system app so that it resides in the /system partition again. See description above (2.) for more details.
5. Optimizing your RAM
What I found particularly annoying on my LG G4S (H735) is that whenever I switched between my game (large files) and another app (e.g. messaging app), the game would load up from scratch again, which would take a few minutes. The reason for this is that the default settings on the phone were set to keep a too big part of the memory "free", so other apps were "killed" as soon as I was using my game. When I then switched back to home screen, all the other apps had to be re-launched, and my game instead "killed" again.
You can decrease the threshold of reserved free memory by editing the build props. There's a risk to get an unstable system if you tweak this too much, but if you try carefully, it may be ok. And you can also reset it to defaults if you're not happy with the results.
You will need a build prop editor, for example the Build Prop Editor app. Open it, and click on the "edit" pencil below to edit the following values:
ro.sys.fw.mOomMinFree1=...
ro.sys.fw.mOomMinFree2=...
ro.sys.fw.mOomMinFree3=...
ro.sys.fw.mOomMinFree4=...
ro.sys.fw.mOomMinFree5=...
ro.sys.fw.mOomMinFree6=...
It worked like a treat on my phone (LG G4S with 1.5GB RAM) and was also reported to work nicely with the LG G3, using the following values:
ro.sys.fw.mOomMinFree1=49152 (unchanged)
ro.sys.fw.mOomMinFree2=61440 (unchanged)
ro.sys.fw.mOomMinFree3=65000 (was set to 73728 originally)
ro.sys.fw.mOomMinFree4=70000 (was set to 204800 originally)
ro.sys.fw.mOomMinFree5=80000 (was set to 262144 originally)
ro.sys.fw.mOomMinFree6=100000 (was set to 327680 originally)
Please share your experiences if you have some tipps to further optimize low-memory phones! Thanks
See also
http://forums.androidcentral.com/lg...ry-using-link2sd-w-pros-cons-vs-data2ext.html
http://www.link2sd.info/faq
Click to expand...
Click to collapse
So did the linking worked! Because I tried foldermount and link2SD but none of them worked. Which I create a link it simply tries to redownload all the data. Please help!
Hi, can you please be a bit more precise about what you were trying to do? Did you do step 3, then followed by 4, which didn't work?
Uninstall foldermount or make sure it is not linking anything. I had problems with foldermount, it may mess things up in your case.
It is also important you created the right file system in your SD card partition (step 3).
A bit complicated for me but gonna try to do it, thanks man
Sent from my Lenovo A5000 using XDA-Developers mobile app
Hi man
I have a Lenovo p70
And I have 32 gb Kingston class 4
I re-partion my memory with apps2sd all in one
And I link the most apps to SD card but I have a problems
When restart my phone most of the apps disappear and I need to restart my phone with soft restart
What the problem and how I can solve it ??
---------- Post added at 01:22 PM ---------- Previous post was at 01:18 PM ----------
And I have a question for you
Step 5 optimizing ram I don't optimizing it
If it nessesary to work plz tell me
I'm so sorry for bad language