Android??Protobuff????????????
???????????? ???????[ 2014/7/28 9:19:29 ] ????????
	????android ??Protobuff?????????????: protobuff?????  square????wire ?? protostuff
	????????protobuff????????????????????????????????????????????????android??60K????????????? ??????β???δ????protobuff
	????????????????100?????л?100?????????飬???????л???????????????????:
	????wire????????:
	public void onClickButton(View view){
	if (TestTask.isCancel){
	TestTask.isCancel = false;
	TestTask.sumDeserializeTime = 0;
	TestTask.sumTime = 0;
	TestTask.runCount = 0;
	TextView text1 = (TextView) findViewById(R.id.textView2);
	text1.setText("");
	new TestTask( (TextView) findViewById(R.id.textView2)
	?? (TextView) findViewById(R.id.button1)).execute();
	((TextView)view).setText("?????У?????ж?");
	}else{
	((TextView)view).setText("?????ж?...");
	TestTask.isCancel = true;
	}
	}
	static class TestTask extends AsyncTask<Void??Void??Long>{
	long serializeTime=0;
	long deserializeTime=0;
	static long sumTime=0;
	static long sumDeserializeTime=0;
	static int runCount=0;
	static boolean isCancel=true;
	TextView text1;
	TextView btn;
	public TestTask(TextView text1??TextView btn) {
	this.text1 = text1;
	this.btn = btn;
	}
	@Override
	protected Long doInBackground(Void... params) {
	long startTime = System.currentTimeMillis();
	for (int i = 0; i < 100; i++) {
	List<ListItem> itemList = new ArrayList<ListItem>();
	ListItem.Builder itemBuilder = new ListItem.Builder();
	ListItem item;
	for (int j = 0; j < 100; j++) {
	item = itemBuilder.title("test Title"+i+":"+j)
	.remark("test Remark"+i+":"+j)
	.coverUrl("http://pic.ozreader.com/abc.pic")
	.uri("PKB:TESTURI")
	.build();
	itemList.add(item);
	}
	ScrollList.Builder listBuilder= new ScrollList.Builder();
	ScrollList list = listBuilder.haveMore(false).tags(itemList).build();
	byte[] dataBuffer = list.toByteArray();
	serializeTime = System.currentTimeMillis()-startTime;
	Wire wire = new Wire();
	try {
	ScrollList resultList = wire.parseFrom(dataBuffer?? ScrollList.class);
	if (resultList == null){
	Log.e("TEST"?? "resultList is null");
	break;
	}else if (resultList.tags == null){
	Log.e("TEST"?? "resultList.tags is null");
	break;
	}else if (resultList.tags.size() <= 0){
	Log.e("TEST"?? "resultList.tags is empty");
	break;
	}else if (resultList.tags.size() != 100){
	Log.e("TEST"?? "resultList.tags is wrong");
	break;
	}else if (!resultList.tags.get(0).uri.equals("PKB:TESTURI")){
	Log.e("TEST"?? "resultList.tags content is wrong");
	break;
	}
	deserializeTime = System.currentTimeMillis()-startTime-serializeTime;
	} catch (IOException e) {
	e.printStackTrace();
	}
	}
	return System.currentTimeMillis() - startTime;
	}
	@Override
	protected void onPostExecute(Long result) {
	sumTime += result;
	sumDeserializeTime += deserializeTime;
	runCount ++;
	text1.append("result:"+result+"?? serializeTime:"+serializeTime+"?? deserializeTime:"+deserializeTime+"?? runCount:"+runCount+"?? avg:"+sumTime/runCount+"?? avg deserializeTime:"+sumDeserializeTime/runCount+"
");
	if (isCancel){
	text1.append("?????ж?.");
	btn.setText("???????");
	}else if (runCount < 100){
	new TestTask(text1??btn).execute();
	}else{
	isCancel = true;
	text1.append("???????.");
	btn.setText("???????");
	}
	}
	}
	
??????
					
					???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44
					
			
								
								
								
								
								
								
								
								
								
								
				
sales@spasvo.com