- 浏览: 122232 次
- 性别:
- 来自: 广州
-
最新评论
文章列表
android服务(Service)
- 博客分类:
- Android开发
在Service的生命周期中,被回调的方法比Activity少一些,只有onCreate, onStart, onDestroy,
onBind和onUnbind。
通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1 通过startService
Service会经历 onCreate 到onStart,然后处 ...
ListView工作原理
- 博客分类:
- Android开发
工作原理 :
ListView 针对 List 中每个 item ,要求 adapter “ 给我一个视图 ” (getView) 。
一个新的视图被返回并显示
如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图? NO! 这不可能!
实际上 Android 为你缓存了视图。
Android 中有个叫做 Recycler 的构件,下图是他的工作原理:
如果你有 10 亿个项目 (item) ,其中只有可见的项目存在内存中,其他的在 Recycler 中。
1. ListView 先请求一个 type1 视图 (getView) 然后请求其他可见的项目。 convertView 在 get ...
Context内存泄露注意点
- 博客分类:
- Android开发
这种Context拥有和应用程序一样长的生命周期,并且不依赖Activity的生命周期。如果你打算保存一个长时间的对象, 并且其需要一个 Context,记得使用Application对象。你可以通过调用Context.getApplicationContext()或 Activity.getApplication()轻松得到Application对象。
最近遇到一种情况引起了Context泄漏,就是在Activity销毁时,里面有其他线程没有停。
总结一下避免Context泄漏应该注意的问题:
1.使用Application这种Context类型。
2.注意对Context的引用不要超 ...
在layout文件中,设置IamgeView的最大(最小)高度(宽度)时,需要同时设置android:adjustViewBounds="true",这样设置才会生效。在代码中设置时,需要setAdjustViewBounds为true。一个layout的实例:
android:adjustViewBounds="true"
android:maxHeight="150.0dip"
android:maxWidth="150.0dip"
android:minHeight="33 ...
动态设置View的高度
- 博客分类:
- Android开发
int newHeight = 200;
//注意这里,到底是用ViewGroup还是用LinearLayout或者是FrameLayout,主要是看你这个EditTex
//控件所在的父控件是啥布局,如果是LinearLayout,那么这里就要改成LinearLayout.LayoutParams
ViewGroup.LayoutParams lp = editText.getLayoutParams();
lp.height = newHeight;
lp.addRule(Relativ ...
TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。
直接上注释后的代码,请享用
package net.sunniwell.app;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class TelManager ex ...
在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,
这里有两种办法,第一种,使用scrollTo():
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}
int offset ...
问题已解决。原因是在混淆代码时默认会去掉class文件中的调试信息(源码的行号、源文件信息等),需要在混淆配置文件中申明保持这些信息:
-renamesourcefileattribute SourceFile-keepattributes SourceFile,LineNumberTable
在win xp ,win 7 上使用adb时, 越来越多的人出现了 adb devices 命令长时间无响应、adb start-server 失败、eclipse adt初始化时卡在dbms-init上等现象。
它们的根本原因均在于,adb server所使用的5037号端口被占用。
一种常见的解决方法是:
找出占用5037(我的改为60000)端口的程序,然后杀掉它。
1、关闭eclipse。
2、使用:netstat -aon | findstr "60000"来找到占用5037的进程ID。
3、使用:tasklist /fi "pid ...
简介:在安卓手机中fastboot是一种比recovery更底层的模式。fastboot是一种线刷,就是使用USB数据线连接手机的一种刷机模式。这种模式是更接近于硬件的界面,所以这个模式一般好似在手机变砖或者修复时使用的。今天就说说fastb ...
【转】android常用组件
- 博客分类:
- Android开发
UI相关
图片
Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载、缓存、显示图片
ImageLoader:com.novoda.imageloader:异步加载、缓存、显示图片
picasso:com.squareup.picasso:功能强大的图片下载缓存库
PhotoView:uk\co\senab\photoview:支持缩放和各种手势的ImageView
ListView
JazzyListView:com.twotoasters.jazzylistview:扩 ...
smack:de.measite.smack:???
???:org.apache:???
smack:org.jivesoftware.smack:XMPP客户端类库
dnsjava:org.xbill.dns:域名解析
alipay:com.alipay:支付宝
volley:com.android.volley:Android网络通信库
android-query:com.androidquery:异步任务和操作UI元素
baidu:com.baidu:百度地图SDK
CC视频:com.bokecc:视频云平台
google-gson:com.g ...
* public static final int NETWORK_TYPE_UNKNOWN = 0; * * public static final int NETWORK_TYPE_GPRS = 1; G(2.5) * public static final int NETWORK_TYPE_CDMA = 4; G(2) * public static final int NETWORK_TYPE_IDEN = 11; G(2) * public static final int NETWORK_TYPE_EDGE = 2; E(2.75) * public ...
使用adb访问应用的sqlite数据库:注:手机必须要先root
1、连接android设备2、查找所有设备:adb devices3、选择你要使用的设备:adb -s 设备名称 shell4、输入ls查询该设备根目录下的所有文件5、输入cd data回车 再输入cd data回车 进入data/data/目录,然后输入ls,会报:opendir failed, Permission denied;6、不管它,主要是因为权限不够,这时候使用Linux命令一样,输入 su(root权限)7、输入cd data回车 再输入cd data回车 进入data/data/目录,然后输入ls,这时候出 ...
Volley的学习笔记
- 博客分类:
- Android开发
说明:对于大数据量的网络操作,Volley的表现会比较糟糕,所有对于下载图片和上传文件之类的,最好不扩展Volley进行上传文件操作。
1,上传客户端到服务端的请求头信息:StringRequest request = new StringRequest(urlValCode, new ValCod ...