安卓 常识 小结

刚刚嵌入式转移动应用,由于没有经验就到了一个刚刚创业的外包公司,工作很累没有多少空余时间,然后看到很多博客都写得很牛逼,就想自己什么时候可以那样,现在也抽点时间总结下安卓的基础常识。

安卓有四大组件

1,Activity :

2,Service 服务

3,BroadcastReceive广播接收器:

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()方法,另外也可以使用全局变量用于数据保存。


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

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

你可能感兴趣的:(安卓 常识 小结)