baiduhttp zhidao.baidu_Androidphone_

com..phone怎么恢复 详细教程
全部答案(共1个回答)
.com/link?url=aySkQMVutDY2tUd_mwBH3MgIjWr6kPQXM-RiIla5jic6o7N_d4B4xIYkZyy91EYVWqUUAzIwjJmiXkwtQwJwJL8t0xwQN1aVzxHwPFxT-FK请参考这网站希望对你有所帮助。
和合成类固醇发射器
是系统自带软件,不能删除的~~~~~~~~~~~~
清除部分运存。 诚心为你解答,给个好评哦亲,谢谢啦
楼主这个应该是安卓系统电话应用出现了问题,现象应该是不能正常拨打电话,解决方法是设置-&应用程序-&拨号-&清除数据。但是请楼主注意,进行此操作前一定要备份好电...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区今天看啥 热点:
Fresco,frescoandroid1、简介 Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。相对于ImageLoader,拥有更快的图片下载速度以及可以加载和显示gif图等诸多优势,是个很好的图片框架。
2、特点 1)内存管理
在5.0以下系统,Fresco将图片放到一个特别的内存区域。当然,在图片不显示的时候,占用的内存会自动被释放。这会使得APP更加流畅,减少因图片内存占用而引发的OOM。
内存分配采用:系统匿名共享内存 2)渐进式呈现图片
渐进式图片格式先呈现大致的图片轮廓,然后随着图片下载的继续, 呈现逐渐清晰的图片,这对于移动设备,尤其是慢网络有极大的利好,可带来更好的用户体验。 3)支持加载Gif图,支持WebP格式。 4)图像的呈现
(1)自定义居中焦点(对人脸等图片显示非常有帮助)。
(2)圆角图,当然圆圈也行。
(3)下载失败之后,点击重新下载。
(4)自定义占位图,自定义overlay, 或者进度条。
(5)指定用户按压时的overlay。 5)图像的加载
(1)为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片。
(2)先显示一个低解析度的图片,等高清图下载完之后再显示高清图。
(3)加载完成回调通知。
(4)对于本地图,如有EXIF缩略图,在大图加载完成之前,可先显示缩略图。
(5)缩放或者旋转图片。
(6)处理已下载的图片。
3、下载地址 /facebook/fresco 官方使用网址:
http://fresco-cn.org/docs/index.html
4、支持的URI 远程图片
http://, https:// 本地文件
file:// Content provider
content:// asset目录下的资源
asset:// res目录下的资源
res:// Uri中指定图片数据
data:mime/base64,
5、常用API android:layout_width="20dp"// 不支持wrap_content, 如果要设置宽高比, 需要在Java代码中指定setAspectRatio(float ratio); android:layout_height="20dp" // 不支持wrap_content
fresco:placeholderImage="@color/wait_color"// 下载成功之前显示的图片 fresco:placeholderImageScaleType="fitCenter"// 设置图片缩放. 通常使用focusCrop,该属性值会通过算法把人头像放在中间 fresco:failureImage="@drawable/error"// 加载失败的时候显示的图片
fresco:failureImageScaleType=“centerInside"// 设置图片缩放 fresco:retryImage="@drawable/retrying"// 加载失败,提示用户点击重新加载的图片(会覆盖failureImage的图片) fresco:roundAsCircle="true"// 设置圆形方式显示图片 // 圆角设置
fresco:roundedCornerRadius="1dp"
fresco:roundTopLeft="true"
fresco:roundTopRight="false"
fresco:roundBottomLeft="false"
fresco:roundBottomRight="true"
fresco:roundWithOverlayColor="@color/corner_color"
fresco:roundingBorderWidth="2dp"
fresco:roundingBorderColor="@color/border_color"
6、使用步骤 (1)添加依赖
dependencies {
// 在 API & 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-base-support:0.14.1'
// 支持 GIF 动图,需要添加
compile 'com.facebook.fresco:animated-gif:0.14.1'
// 支持 WebP (静态图+动图),需要添加
compile 'com.facebook.fresco:animated-webp:0.14.1'
compile 'com.facebook.fresco:webpsupport:0.14.1'
// 仅支持 WebP 静态图,需要添加
compile 'com.facebook.fresco:webpsupport:0.14.1'
compile 'com.facebook.fresco:fresco:0.14.1'
(2)在application中初始化Fresco
Fresco.initialize(this);
(3)配置网络权限
&uses-permission android:name="android.permission.INTERNET"/& (4)在xml布局文件中,加入命名空间
&!-- 其他元素--&
&LinearLayout
xmlns:android="/apk/res/android"
xmlns:fresco="/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent"&
(5)在xml中引入SimpleDraweeView
&com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="130dp"
android:layout_height="130dp"
fresco:placeholderImage="@drawable/my_drawable"
(6)在Java代码中开始加载图片
Uri uri = Uri.parse("/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
如果项目中使用了OkHttp需要进行替换
For OkHttp2:
compile "com.facebook.fresco:imagepipeline-okhttp:0.12.0+"
For OkHttp3:
compile "com.facebook.fresco:imagepipeline-okhttp3:0.12.0+"
7、例子 1)带进度条的图片 (先显示进度条,在显示图片)(1)布局
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
xmlns:fresco="/apk/res-auto"
xmlns:tools="/tools"
android:id="@+id/activity_fresco_spimg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"&
&com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/sdv_fresco_spimg"
android:layout_width="130dp"
android:layout_gravity="center"
android:layout_height="130dp"
fresco:placeholderImage="@drawable/atguigu_logo" /&
&/LinearLayout&
@Bind(R.id.sdv_fresco_spimg)
SimpleDraweeView sdvFrescoS
private void initData() {
// 设置样式
GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(getResources());
GenericDraweeHierarchy hierarchy = builder.setProgressBarImage(new ProgressBarDrawable()).build();
sdvFrescoSpimg.setHierarchy(hierarchy);
// 加载图片的地址
Uri uri = Uri.parse("/uploads/item//30_ruKEK.jpeg");
// 加载图片
sdvFrescoSpimg.setImageURI(uri);
2)图片的不同裁剪
public class FrescoCropActivity extends Activity {
@Bind(R.id.sdv_fresco_crop)
SimpleDraweeView sdvFrescoC
private GenericDraweeHierarchyB
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fresco_crop);
ButterKnife.bind(this);
initData();
private void initData() {
builder = new GenericDraweeHierarchyBuilder(getResources());
// 居中,无缩放
@OnClick(R.id.bt_fresco_center)
void bt_fresco_center_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.CENTER).build();
// 图片显示
imageDisplay(hierarchy);
private void imageDisplay(GenericDraweeHierarchy hierarchy) {
sdvFrescoCrop.setHierarchy(hierarchy);
// 加载图片
Uri uri = Uri.parse("/uploads/item//16_VrUUR.jpeg");
sdvFrescoCrop.setImageURI(uri);
// 保持宽高比缩小或放大,使得两边都大于或等于显示边界。居中显示
@OnClick(R.id.bt_fresco_centercrop)
void bt_fresco_centercrop_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP).build();
// 图片显示
imageDisplay(hierarchy);
// 同centerCrop, 但居中点不是中点,而是指定的某个点,这里我设置为图片的左上角那点
@OnClick(R.id.bt_fresco_focuscrop)
void bt_fresco_focuscrop_click(View view){
// 样式设置
PointF point = new PointF(0,0);
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FOCUS_CROP)
.setActualImageFocusPoint(point).build();
// 图片显示
imageDisplay(hierarchy);
// 使两边都在显示边界内,居中显示。如果图尺寸大于显示边界,则保持长宽比缩小图片
@OnClick(R.id.bt_fresco_centerinside)
void bt_fresco_centerinside_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_INSIDE).build();
// 图片显示
imageDisplay(hierarchy);
// 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示
@OnClick(R.id.bt_fresco_fitcenter)
void bt_fresco_fitcenter_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER).build();
// 图片显示
imageDisplay(hierarchy);
// 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内,不居中,和显示边界左上对齐
@OnClick(R.id.bt_fresco_fitstart)
void bt_fresco_fitstart_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_START).build();
// 图片显示
imageDisplay(hierarchy);
// 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内,不居中,和显示边界右下对齐
@OnClick(R.id.bt_fresco_fitend)
void bt_fresco_fitend_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_END).build();
// 图片显示
imageDisplay(hierarchy);
// 不保持宽高比,填充满显示边界
@OnClick(R.id.bt_fresco_fitxy)
void bt_fresco_fitxy_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_XY).build();
// 图片显示
imageDisplay(hierarchy);
// 如要使用title mode显示, 需要设置为none
@OnClick(R.id.bt_fresco_none)
void bt_fresco_none_click(View view){
// 样式设置
GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(null).build();
// 图片显示
imageDisplay(hierarchy);
3)圆形和圆角图片
(1)设置圆形图片
(2)设置圆角图片
public class FrescoCircleAndCornerActivity extends Activity {
@Bind(R.id.sdv_fresco_circleandcorner)
SimpleDraweeView sdvFrescoC
private GenericDraweeHierarchyB
private RoundingP
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fresco_circle_and_corner);
ButterKnife.bind(this);
initData();
private void initData() {
uri = Uri.parse("/uploads/item//38_wAfHC.jpeg");
builder = new GenericDraweeHierarchyBuilder(getResources());
// 设置圆形图片
@OnClick(R.id.bt_fresco_circle)
void bt_fresco_circle_click(View view){
parames = RoundingParams.asCircle();
GenericDraweeHierarchy hierarchy = builder.setRoundingParams(parames).build();
sdvFrescoCircleandcorner.setHierarchy(hierarchy);
sdvFrescoCircleandcorner.setImageURI(uri);
// 设置圆角图片
@OnClick(R.id.bt_fresco_corner)
void bt_fresco_corner_click(View view){
parames = RoundingParams.fromCornersRadius(50f);
parames.setOverlayColor(getResources().getColor(android.R.color.holo_red_light));//覆盖层
parames.setBorder(getResources().getColor(android.R.color.holo_blue_light), 5);//边框
GenericDraweeHierarchy hierarchy = builder.setRoundingParams(parames).build();
sdvFrescoCircleandcorner.setHierarchy(hierarchy);
// 加载图片
sdvFrescoCircleandcorner.setImageURI(uri);
4)渐进式展示图片(从不清晰到清晰)
// 加载质量配置
ProgressiveJpegConfig jpegConfig = new ProgressiveJpegConfig() {
public int getNextScanNumberToDecode(int scanNumber) {
return scanNumber + 2;
public QualityInfo getQualityInfo(int scanNumber) {
boolean isGoodEnough = (scanNumber &= 5);
return ImmutableQualityInfo.of(scanNumber, isGoodEnough, false);
ImagePipelineConfig.newBuilder(this).setProgressiveJpegConfig(jpegConfig).build();
// 获取图片URL
Uri uri = Uri.parse("/uploads/item//53_45Qix.jpeg");
// 获取图片请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri).setProgressiveRenderingEnabled(true).build();
DraweeController draweeController = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setTapToRetryEnabled(true)
.setOldController(sdvFrescoJpeg.getController())//使用oldController可以节省不必要的内存分配
// 1设置加载的控制
sdvFrescoJpeg.setController(draweeController);
5)Gif动画图片
(2)添加依赖
compile 'com.facebook.fresco:animated-gif:0.14.1'
@Bind(R.id.sdv_fresco_gif)
SimpleDraweeView sdvFrescoG
// 请求gif图片
@OnClick(R.id.bt_fresco_askImg)
void bt_fresco_askImg_click(View view){
Uri uri = Uri.parse("/humor/attachement/gif/site3/7fcd7fcd.gif");
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(false)
.setOldController(sdvFrescoGif.getController())
sdvFrescoGif.setController(controller);
@OnClick(R.id.bt_fresco_stopAnim)
void bt_fresco_stopAnim_click(View view){
Animatable animatable = sdvFrescoGif.getController().getAnimatable();
if(animatable != null && animatable.isRunning()) {
animatable.stop();
// 动画开始
@OnClick(R.id.bt_fresco_startAnim)
void bt_fresco_startAnim_click(View view){
Animatable animatable = sdvFrescoGif.getController().getAnimatable();
if(animatable != null && !animatable.isRunning()) {
animatable.start();
6)多图请求及图片复用
// 先显示低分辨率的图,然后是高分辨率的图
@OnClick(R.id.bt_fresco_multiImg)
void bt_fresco_multiImg_click(View view){
// 图片地址
Uri lowUri = Uri.parse("//19--50.jpg");
Uri highUri = Uri.parse("/uploads/item//23_Y4y8F.jpeg");
// 控制加载图片
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setLowResImageRequest(ImageRequest.fromUri(lowUri))
.setImageRequest(ImageRequest.fromUri(highUri))
// 加载图片
sdvFrescoMulti.setController(controller);
// 本地缩略图预览
@OnClick(R.id.bt_fresco_thumbnailImg)
void bt_fresco_thumbnailImg_click(View view){
// 图片地址
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory() +"/meinv1.jpg"));
// 加载图片的请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setLocalThumbnailPreviewsEnabled(true)
// 控制图片的加载
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
// 加载图片
sdvFrescoMulti.setController(controller);
// 本地图片复用
@OnClick(R.id.bt_fresco_multiplexImg)
void bt_fresco_multiplexImg_click(View view){
//本地图片的复用
//在请求之前,还会去内存中请求一次图片,没有才会先去本地,最后去网络uri
//本地准备复用图片的uri
如果本地这个图片不存在,会自动去加载下一个uri
// 请求加载图片
Uri uri1 = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/meinv.jpg"));
//图片的网络uri
Uri uri2 = Uri.parse("/uploads/item//23_Y4y8F.jpeg");
ImageRequest request1 = ImageRequest.fromUri(uri1);
ImageRequest request2 = ImageRequest.fromUri(uri2);
ImageRequest[] requests = {request1, request2};
// 控制加载图片
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setFirstAvailableImageRequests(requests)
.setOldController(sdvFrescoMulti.getController())
// 加载图片
sdvFrescoMulti.setController(controller);
7)图片加载监听
1 public class FrescoListenerActivity extends Activity {
@Bind(R.id.tv_title)
TextView tvT
@Bind(R.id.sdv_fresco_listener)
SimpleDraweeView sdvFrescoL
@Bind(R.id.tv_fresco_listener)
TextView tvFrescoL
@Bind(R.id.tv_fresco_listener2)
TextView tvFrescoListener2;
private ControllerListener controllerListener = new BaseControllerListener&ImageInfo&(){
// 加载图片完毕
public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {
super.onFinalImageSet(id, imageInfo, animatable);
if (imageInfo == null) {
// 获取图片的质量
QualityInfo qualityInfo = imageInfo.getQualityInfo();
tvFrescoListener.setText("Final image received! " +
"\nSize: " + imageInfo.getWidth()
+ "x" + imageInfo.getHeight()
+ "\nQuality level: " + qualityInfo.getQuality()
+ "\ngood enough: " + qualityInfo.isOfGoodEnoughQuality()
+ "\nfull quality: " + qualityInfo.isOfFullQuality());
// 渐进式加载图片回调
public void onIntermediateImageSet(String id, ImageInfo imageInfo) {
super.onIntermediateImageSet(id, imageInfo);
tvFrescoListener2.setText("IntermediateImageSet image receiced");
// 加载图片失败
public void onFailure(String id, Throwable throwable) {
super.onFailure(id, throwable);
tvFrescoListener.setText("Error loading" + id);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fresco_listener);
ButterKnife.bind(this);
initData();
private void initData() {
tvTitle.setText("图片加载监听");
@OnClick(R.id.bt_fresco_listener)
void bt_fresco_listener(View view){
// 加载图片质量配置
ProgressiveJpegConfig jpegConfig = new ProgressiveJpegConfig() {
public int getNextScanNumberToDecode(int scanNumber) {
return scanNumber + 2;
public QualityInfo getQualityInfo(int scanNumber) {
boolean isGoodEnough = (scanNumber &= 5);
return ImmutableQualityInfo.of(scanNumber, isGoodEnough, false);
ImagePipelineConfig.newBuilder(this).setProgressiveJpegConfig(jpegConfig).build();
// 图片地址
Uri uri = Uri.parse("http://h./zhidao/pic/item/58ee3d6d55fbb2fbac4f2af24f4a20a44723dcee.jpg");
// 图片请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
// 图片加载的控制
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(sdvFrescoListener.getController())
.setImageRequest(request)
.setControllerListener(controllerListener)
// 加载图片
sdvFrescoListener.setController(controller);
FrescoListenerActivity
8)图片缩放和旋转
// 图片地址
Uri uri = Uri.parse("http://c./image/pic/item/962bd40735fae6cd21af.jpg");
// 图片的请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(new ResizeOptions(50,50))
// 控制图片的加载
PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
.setOldController(sdvFrescoResize.getController())
.setImageRequest(request)
// 加载图片
sdvFrescoResize.setController(controller);
Uri uri = Uri.parse("http://c./image/pic/item/962bd40735fae6cd21af.jpg");
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setAutoRotateEnabled(true)
// 控制图片的加载
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(sdvFrescoResize.getController())
.setImageRequest(request)
// 加载图片
sdvFrescoResize.setController(controller);
9)修改图片--为图片添加网格
// 图片地址
Uri uri = Uri.parse("http://c./image/pic/item/962bd40735fae6cd21af.jpg");
// 修改图片
Postprocessor postProcessor = new BasePostprocessor() {
public String getName() {
return "postProcessor";
public void process(Bitmap bitmap) {
//绘制红色点状网格
for (int x = 0; x & bitmap.getWidth(); x += 2) {
for (int y = 0; y & bitmap.getHeight(); y += 2) {
bitmap.setPixel(x, y, Color.RED);
// 创建图片请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setPostprocessor(postProcessor)
// 控制加载
PipelineDraweeController controller = (PipelineDraweeController)Fresco.newDraweeControllerBuilder()
.setOldController(sdvFrescoModify.getController())
.setImageRequest(request)
// 加载图片
sdvFrescoModify.setController(controller);
10)动态展示图片
&LinearLayout
android:id="@+id/ll_fresco"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="vertical"&
&/LinearLayout&
// 图片的地址
Uri uri = Uri.parse("/uploads/item//38_wAfHC.jpeg");
// 图片的请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
// 加载图片的控制
PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
.setOldController(simpleDraweeView.getController())
.setImageRequest(request)
// 加载图片
simpleDraweeView.setController(controller);
// 添加View到线性布局中
llFresco.addView(simpleDraweeView);
8、注意事项 1)问题处理
1)重复的边界
2)图片没有加载
3)文件不可用
4)OOM - 无法分配图片空间
5)Bitmap太大导致无法绘制
6)通过Logcat来判断原因
7)启动日志
8)查看日志
2)一些陷阱
1)不要使用 ScrollViews
2)不要向下转换
3)不要使用getTopLevelDrawable
4)不要复用 DraweeHierarchies
5)不要在多个DraweeHierarchy中使用同一个Drawable
6)不要直接控制 hierarchy
7)不要直接给 DraweeView 设置图片
8)使用 DraweeView 时,请不要使用任何 ImageView 的属性 3)为什么不支持wrap_content 4)共享元素动画
9、参考网站 http://blog.csdn.net/u/article/details/ /NateRobinson/FrescoStudyDemo
暂无相关文章
相关搜索:
相关阅读:
相关频道:
Android教程最近更新Subscribe for Free Android Apps
Popular and Free Android Apps
Android Freeware .net - Free Android Apps , Mobile Network Ltd. 2017
Android is a trademark of Google Inc. Use of this trademark is subject to .1412人阅读
Android(38)
& & & 目前,不管是手机还是平板,Android系统都很流行.人们也普遍听说过root和刷机这两个词.那他们有何区别和联系呢?
& & & 其实,获取root权限和刷机是有区别的:获取root权限就是获取最高的管理员权限,而刷机就是重新刷一个新的系统.当然,为了获得root权限,很多时候需要刷机--重新刷一个系统.可以看参考资料[1][2][3].
& & & 目前,获取root的方法有很多种,下面就进行一个总结.
一, 手机版一键root
& & & 可以用手机直接下载一个一键root的.apk安装包,根据提示,点击&一键root&即可!这种方最简单,但是成功率相对较低!
& & & 常用的手机版一键root软件有:z4root,一键root大师,百度一键root...
& & & 评价:这种方法最简单,而且最安全,不会对手机造成损坏性的影响.对于爱惜自己机器的新手来说,无疑是一个很好地的选择!
二,PC版一键root
& & & 顾名思义,PC版的一键root,就是安装在PC上的.这种软件以微软系统居多,例如百度一键root(也有android版的),一键root大师等等.使用PC的一键root,要将手机和PC通过数据连接在一起,并且安装相关驱动.很多软件可以帮你自动搜索并且安装驱动,例如百度手机助手等,详见参考资料[4].
& & & 评价:这种方法也很简单,并且安全,成功率相对于手机版的一键root高.
& & 如果在上面的两种root方法中,都没有成功的话,那只能刷机了.目前,流行的刷机方法有两种:卡刷和线刷.
& & 参考资料[8][9]
四,系统精简
& & 删除系统应用,还需借助第三方的工具,例如360卫士,安卓优化大师等等.其中,本人最喜欢的就是Root Explorer和ROOTt卸载器,觉得他们删除软件够彻底,并且不会带来很多&二次污染&.由于ROOT卸载器使用起来比较傻瓜式,因此就不多说,下面重点说一下用Root Explorer精简系统的方法.
& & 使用Root Explorer精简系统,要求使用者对Android系统的软件存放位置有个比较清楚的了解,才知道去哪个目录里面去删除.
1,系统应用--/system/app
& & 系统应用一般在/system/app这个目录中,将里面的.apk文件和同名的.odex文件删除,也就完成了系统应用的卸载!
& 注意:为了避免误删,有两种方法:
& & & & a)将/system/app目录中的文件做一个备份,以便日后恢复使用.参考资料[5];
& & & & b)不要直接删除,将不要的应用名字修改一下,让系统找不到即可(推荐),参考资料[6]
& 另外:a)如果使用root卸载器,只能将.apk文件删除,而对.odex文件无能为力!
& & & & & b)其实这还不算完全的删除,/data/dalvik-cache/中还有系统应用的.dex文件(当然,也有用户的),要想真正的将一个软件删除,就要将这个文件中的.dex删除!否则,再次安装上述方法所&卸载&系统应用,将会提示&未安装&!参考资料[12].对这个问题,下面更细说明.
2,用户程序--/data/app
& & 有时候用户自己安装的程序多了,也会导致系统变慢.当然,使用系统自带的卸载方式可以将程序卸载,但总是感觉这种卸载方式不够彻底.那么,使用Root Explorer怎样清理这些垃圾呢?
& & 用户程序一般在/data/app目录中,将其中的.apk文件删除就行了.注意了,用户程序一般没有对应的.odex文件的.参考资料[7]
& & 注意:a)除了/data/app外,在data中一般还有app-lib,app-asec,app-private等目录.清理用户程序的时候,也应该将其中对应的内容清理.
& & & & & & b)在/sdcard中,通常还有有每个应用程序的目录,主要用于保存一些缓存数据等.例如QQ browser,主要保存了QQ浏览器的下载文件.也可以一并进行删除!
3,缓存清理--/data/dalvik-cache
& 在/data/dalvik-cache/中,还有很多和程序相关的.dex文件,例如data@app@com.tencent.hd.qq-1.apk@classes.dex,这个文件明显和安装的QQ程序有关!其实,一个Android系统有没有安装了某个软件,就是根据这个目录中有没相应的文件来判断的!参考资料[10][11][12]
4,清理数据--/data/data
& & 在/data中,还有一个data目录,这个目录中有很多诸如com.android.browser的目录,也即是说,这里为每个应用程序都建立了一个数据目录!这和/sdcard中的目录不一样,这里每个目录里面都有一个lib文件!
& 一旦安装了一个软件,将会涉及到系统的很多目录和文件,卸载应用程序的时候,想自己手工逐一的将他们卸载,这将是一件非常艰难的事情,除非你对Android系统的程序安装也卸载机制十分了解!否则,随着时间的推移,你的系统会越来越庞大,运行得越来越慢,直到有一天你忍不住要重装系统!
[1]刷机和root有什么区别
[2]安卓root权限是什么意思啊???
[3]root和刷机有什么区别?
[4]一键root工具大全
[5]让你不再纠结 安卓智能手机系统精简教程
[6]精简你的Android 彻底删除系统应用方法
[7]教你将你的ROM一键odex化 优化rom必学
[8][原厂]三星P5210官方最新固件下载专贴目前最高版rom4.2.2以及刷机平台驱动格机等教
[9]三星 Galaxy Tab3 10.1 GT-P5210 root方法
[10]【Mod】简便方法转移dalvik-cache,释放data空间!【已提供toSystem及卸载方法】&
[11]安卓手机的data\dalvik-cache文件夹里都是什么文件啊?
[12]教你如何删除系统自带的软件,不残留垃圾文件
do not turn off target时间好长啊,怎么回事啊?
我的手机按音量减home键加开机键进入到有个安卓机器人出现DO NOT TURN OFF TARGET!!,然后我把手机连到电
手机recovery是什么意思
刷recovery在odin中也是选择pda吗
Galaxy SIII最详细odin3线刷rom教程,适用于各版本各类型rom!
安卓刷机怎么备份所有文件?
ota升级是什么意思
最详细的【Recovery】使用说明,刷机必备
【教程】odin3刷机教程 新手必看&
三星i9100卡刷刷机的图文教程
适合变砖后刷的三星i9100的官方原版rom包
三星i9100的Odin刷机方法和教程(图文)
三星i9100刷入recovery的方法和教程
三星i9100的usb驱动下载
三星i9100官方原版rom和基带内核下载
三星i9100怎么进刷机模式和恢复模式及区别
使用odin工具的说明以及刷rom注意的细节
htc刷机前需要解锁?这个解锁什么意思? 还有g1 到g12都能解锁吗,怎么解的?软件?详细
手机中samsung push service有什么用
史上最完美最干净最极度的精简
[技术教程] 一键odex合并与分解。。。
快速清除Android应用缓存方法
Android手机程序的卸载以及程序缓存清除
Android手机的apk文件中的class.dex文件是什么?是做什么用的呢?
对于Android DEX文件详细说明
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:641163次
积分:12792
积分:12792
排名:第871名
原创:640篇
译文:11篇
评论:78条
(4)(3)(20)(6)(12)(23)(10)(12)(46)(6)(10)(4)(13)(17)(4)(9)(10)(19)(29)(19)(35)(36)(3)(15)(18)(55)(3)(2)(8)(5)(1)(2)(5)(3)(12)(36)(44)(17)(1)(2)(22)(23)(36)}

我要回帖

更多关于 baiduzhidaoribao 的文章

更多推荐

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

点击添加站长微信