手机刷机后,APP文件夹里有个android2.3刷机教程2apk能删除吗?有什么影响?(占了10M的内存,讨厌死了)

我的手机是刷的安卓2.3.6,软件只要能移,都移到存储卡了,可我手机机身内存越来越少,我本来有三十几个软件,手机机身内存200M,然后手机提醒机身内存不足,我就卸载了差不多150M的软件,仅仅剩下六个自己下的,占内存绝对不超过50M的软件,可手机还是提醒手机内存不足,仅仅剩下10M的空间,按理说至少还有100M的空间的,存储卡空间也很充足,这是为什么呢?现在我的软件一卸载就没法装上去。。。求您帮我。。。_ _手机问题_刷机专家(卓大师)
我的手机是刷的安卓2.3.6,软件只要能移,都移到存储卡了,可我手机机身内存越来越少,我本来有三十几个软件,手机机身内存200M,然后手机提醒机身内存不足,我就卸载了差不多150M的软件,仅仅剩下六个自己下的,占内存绝对不超过50M的软件,可手机还是提醒手机内存不足,仅仅剩下10M的空间,按理说至少还有100M的空间的,存储卡空间也很充足,这是为什么呢?现在我的软件一卸载就没法装上去。。。求您帮我。。。
网友()问于
机型(未知型号
o 系统(未知版本
) o Root权限(未获取)
还没有人帮助回答,您能帮忙回答吗?
专家简介:原卓大师,专注刷机领域,业内元老级应用。
专家宣言:让您一键轻松解决刷机烦恼!
版本:5.7.0大小:13.74MB
版本:2.7.0大小:2.84MB
大师简介:业内最强ROOT软件,轻松ROOT。
大师宣言:让您一键轻松解决ROOT烦恼!
版本:2.9.0大小:8.54MB
版本:5.1.5大小:8.3MB
大师简介:免ROOT直接安装字体,个性化定制手机。
大师宣言:万千字体,想换就换!
版本:3.9.0大小:5.2MB
相关解决问题列表
(C) 2007 - 2015
北京京鼎诚科技发展有限责任公司京公安网备56
帮助与支持
关注卓大师官方微信
获取最新潮刷机资讯
还没有卓大师的账号?
或使用其他帐号登录:Android(2)
最近工作中,遇到了几个内存优化的问题,1.应用退出后,此应用进程保持了不少内存得不到释放,用工具强制gc也无法释放。2.应用进入某些页面瞬间请求分配内存过大。此两个问题对于有经验的开发者很容易猜测一个是内存泄露,一个是图片之类的资源问题。下面来写一个例子分析一下这两个问题
&第一个例子是Volley加载图片的app,当此app退出时缓存释放问题
Application类
import android.app.A
import com.android.volley.RequestQ
import com.android.volley.toolbox.V
public class MyApplication extends Application{
RequestQueue mRequestQ
private static MyApplication mI
public static MyApplication getInstance(){
public void onCreate() {
super.onCreate();
mInstance =
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(this);
return mRequestQ
主Activity简单的跳转功能
import android.content.I
import android.support.v7.app.AppCompatA
import android.os.B
import android.view.V
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void jump(View view){
Intent intent = new Intent(this,ShowImageActivity.class);
startActivity(intent);
加载图片的Activity
import android.app.A
import android.os.B
import android.widget.ImageV
import com.android.volley.toolbox.ImageL
public class ShowImageActivity extends Activity{
private final static String IMAGE1_URL = &http://o6lxzg30h./d29c81dff09a7375fff1.jpg&;
private final static String IMAGE2_URL = &http://o6lxzg30h./cpmc7m4j1gof1.jpg&;
ImageLoader mImageL
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show_image);
mImageLoader = new ImageLoader(MyApplication.getInstance().getRequestQueue(), MyImageCache.getInstance());
ImageView image1Iv = (ImageView)findViewById(R.id.image1_iv);
ImageView image2Iv = (ImageView)findViewById(R.id.image2_iv);
mImageLoader.get(IMAGE1_URL,new MyImageListener(image1Iv));
mImageLoader.get(IMAGE2_URL,new MyImageListener(image2Iv));
其他工具类
import android.graphics.B
import android.util.LruC
import com.android.volley.toolbox.ImageL
public class MyImageCache implements ImageLoader.ImageCache {
private LruCache&String, Bitmap& mMemoryC
private static MyImageCache mImageC
private MyImageCache() {
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache&String, Bitmap&(cacheSize) {
protected int sizeOf(String key, Bitmap bitmap) {
return bitmap.getByteCount() / 1024;
public static MyImageCache getInstance() {
if (mImageCache == null)
mImageCache = new MyImageCache();
return mImageC
public void putBitmap(String key, Bitmap value) {
mMemoryCache.put(key, value);
public Bitmap getBitmap(String key) {
return mMemoryCache.get(key);
public void clearCache(){
if(mMemoryCache != null){
mMemoryCache.evictAll();
import android.widget.ImageV
import com.android.volley.VolleyE
import com.android.volley.toolbox.ImageL
public class MyImageListener implements ImageLoader.ImageListener {
private ImageV
public MyImageListener(ImageView view){
this.view =
public void onErrorResponse(VolleyError error) {}
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
view.setImageBitmap(response.getBitmap());
启动应用界面如图
此时app进程占用内存是10M
退出app,点击进行强制gc回收,但是发现此app虽然退出了,但是还占用9M内存,我们知道一个空的应用进程如果没有被杀死,它占用1.4M左右内存才算正常的,现在是9M显然是有问题。接下来用工具分析一下这个问题。
首先抓取此时Heap中的信息,因为Java中的内存占用主要在Heap中。点击&进行抓取,大约等几十秒中,等待抓取完成会生成一个hprof文件,在Android
studio 中的 captures选项夹中可以看到,此文件会被android studio 自动打开如图
Retained Size表示内存总占用,从图中可以看出byte[]占用了8M多,从这个大小中我们大约可以可以猜测应该是这个的问题,点击byte[],从右侧的Instance中可以找到两个特别大的对象,如图
这两个对象都占用了4M内存,点击其中一个对象,在下方的Preference Tree中我们可以定位到 com.memorydemo.MyImageCache类的mMemoryCache成员,看来是这个类的问题,从上面代码中我们可以看到,mMemoryCache是我们定义的一个图片缓存对象,为什么不能被gc回收呢?是因为它是静态的。
再来通过另一个远古神器MAT来分析一下,MAT下载地址&http://www.eclipse.org/mat/downloads.php
MAT启动界面如图
此工具是读取hprof文件的,和上面的一样,但是Android studio生成的不是标准的需要转换一下,在Captures里右键选择 Export to standard.hprof
转换后的文件,可以被MAT识别,在MAT的File-&Open Heap Dump打开转换后的文件,选择Leak Suspects Report ,进入如图所示界面
我们点击&此按钮生成一个histogram,如图
从图中可以看到同样是byte[]占用高,右键byte[],--& List objects --& with incoming references
可见是前两个对象占用过高,右键其中一个对象 --& Path to GC Roots --& exclude all phantom/weak/soft etc. references,进入如下界面点开调用栈发现最终定位到了mImageCache,此对象前面有个小黄点,表示它不能被gc回收,前面说了它是个静态成员
好了通过这两个工具清晰的说明了,之所以app退出后仍然没有释放内存,是因为我们的图片缓存没有释放导致,那么我们在何时释放图片缓存了?当然是在程序的全部UI都退出后。Android 提供了 public void onTrimMemory(int level)方法来监听此过程,在&/training/articles/memory.html文档中的&Release memory as memory becomes tight中讲解了 此方法各参数的用法,我们这里只坚挺
level =&TRIM_MEMORY_UI_HIDDEN 的情况,此level表示app所有界面已不可见,在Application类中重写方法onTrimMemory释放缓存文件
public void onTrimMemory(int level) {
super.onTrimMemory(level);
if(level == TRIM_MEMORY_UI_HIDDEN){
MyImageCache.getInstance().clearCache();
}此时app如果退出,此app进程占用内存值就回到了正常状态
demo代码下载&http://download.csdn.net/detail/u21303
下一篇来说明一下一个内存泄露问题
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1985次
排名:千里之外
(3)(1)(1)(1)(1)手机系统备份刷机后还怎么恢复_百度知道手机刷机后,APP文件夹里有个android2.2apk能删除吗?有什么影响?(占了10M的内存,讨厌死了)_百度知道}

我要回帖

更多关于 android2.3刷机教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信