安卓 常识 小结

刚刚嵌入式转移动应用,因为没有经验就到了一个刚刚创业的外包公司,工做很累没有多少空余时间,而后看到不少博客都写得很牛逼,就想本身何时能够那样,如今也抽点时间总结下安卓的基础常识。java

安卓有四大组件
linux

1,Activity :android

2,Service 服务数据库

3,BroadcastReceive广播接收器:json

4,Content Provider内容提供者缓存

activity有能够分为 activity和fragmentactivty,fragmentactivty出现是为了解决activity切换时费时和数据恢复麻烦而出现的,在这两个组件中经常使用的生命周期方法为oncreate()、ondestroy(),前者进行界面的初始化和数据加载,后者用于数据删除回收内存等。安全

数据传递与保存网络

多个activity切换过程可使用intent传递信息也可使用全局变量Application,保存当前activity数据则使用Activity的onSaveInstanceState()和onRestoreInstanceState()方法,由系统销毁一个Activity时,onSaveInstanceState()会被调用。可是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。一般onSaveInstanceState()只适合用于保存一些临时性的状态(内存不足、用户直接按Home键),而onPause()适合用于数据的持久化保存。另外,当屏幕的方向发生了改变,能够重写Activity的 onSaveInstanceState() 和onRestoreInstanceState()方法,另外也可使用全局变量用于数据保存。app


settag()/getTag() 用于 listview 传递位置值的,ide

v.getTag().toString; 字符型        

(Integer)v.getTag(); 整型 Integer.parseInt(v.getTag().toString())



Android的数据存储方式
一.SharedPreferences方式
二.文件存储方式
三.SQLite数据库方式            
四.内容提供器(Content provider)方式

五. 网络存储方式

通常网络数据下载以后,须要缓存在本地,主要使用sharedPreferences和SQLite和文件


android中的动画两种

一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可使视图组件移动、放大、缩小以及产生透明度的变化;另外一种Frame动画,传统的动画方法,经过顺序的播放排列好的图片来实现,相似电影。


Handler的两种形式

由于安卓ui中处理控件只容许在主线程中,因此须要handler和message

class MyHandler extends Handler  
{  
    @Override  
    public void handleMessage(Message msg) {  
        // TODO Auto-generated method stub  
        super.handleMessage(msg);  
        if(msg.what==1)  
        {  
            System.out.println(msg.arg1+"handle");  
            bar.setProgress(msg.arg1);  
        }  
    }  
}

MyHandler handler;  

Message message=new Message();  
message.what=1;  
handler.sendMessage(message);


方法二
Class a implements Callback {
    Handler mhandler;

    mhandler = new Handler(this);    //这个要加上

    B b = new B(mhandler);
    b.bb();
    @Override
    public boolean handleMessage(Message message) {
	switch (message.what) {
	    case 10:
			
	    System.out.println("shi");
	    break;
	}
	return false;
    }
	

}

Class B {

    Handler handler;
    public B(Handler handler){
        this.handler = handler;
    }
    
    void bb(){
        Message msg = new Message();
        msg.what = 10;
        handler.sendMessage(msg);
    }
}


json数据解析

NetJsonData NetJson = new NetJsonData();
JSONObject jsonObj = new JSONObject(data);

NetJson.szReuslt = jsonObj.getString(KEY_RESULT);
NetJson.szErrDesc = jsonObj.getString(KEY_ERRDESC);
NetJson.szApiType = jsonObj.getString(KEY_API_TYPE);
if (jsonObj.length() <= 3)
	return NetJson;

JSONArray jsonList = jsonObj.getJSONArray("0");
JSONObject tmpJson = null;
		
UserTimeLines tmpDetail = null;
NetJson.usertiemline = new ArrayList<UserTimeLines>();
for (int i = 0; i < jsonList.length(); i++) {
	tmpJson = jsonList.getJSONObject(i);
	if (tmpJson == null)
		continue;
	tmpDetail = new UserTimeLines();
	tmpDetail.userHead = tmpJson.getString("UserHeadPicFileName");
	NetJson.usertiemline.add(tmpDetail);
}
		
return NetJson;


安卓每一个app对应一个linux中的用户,pid,每一个app对应一个dmv,由守护线程负责维护。保证app安全独立

安卓资源文件分布图

安卓进程状态

安卓单位


String.Format("qw%02d.png",1);

这个就是输出 qw01.png   自动从%后面替换后面的数字 02表示两位不足补0

相关文章
相关标签/搜索