Android API个人库的建设(附源码)
Android API个人库的建设(附源码)
建设个人的API库, 不但可以积累一些常见的工作经验, 更重要的养成持续改进的好习惯, 因此决定从今天起, 开始建设Android的API库, 关键点在于1. 常用GUI
2. 四大组件的应用场景
3. IPC 场景
4 JNI场景
5 Binder 机制, 尤其是本地侧
借助系统Activity过滤的功能, 可以自动实现对上述的系统API描述的Activity进行加载, 加载如下面的源码所示:
- package com.ostrichmyself;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import android.app.ListActivity;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.content.pm.ResolveInfo;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- /**
- * 这个界面完全是用来展示的, 它的作用是启动其它待展示的Activity.
- * 目前用List方式去展示, 参考API Demo的实现
- * @author tiant5
- *
- */
- public class MainActivity extends ListActivity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setListAdapter(new SimpleAdapter(this, getData(),
- android.R.layout.simple_list_item_1, new String[] { "title"},
- new int[] { android.R.id.text1}));
- getListView().setTextFilterEnabled(true);
- }
- private List<HashMap<String, Object>> getData()
- {
- ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
- //通过下面的方式提取设定的UI Activity
- Intent mainIntent = new Intent("action.ostrichmyself.ui", null);
- mainIntent.addCategory("catagory.ostrichmyself.ui");
- PackageManager pm = getPackageManager();
- List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
- for (int i = 0; i < list.size(); i++)
- {
- HashMap<String, Object> hashMap = new HashMap<String, Object>();
- ResolveInfo info = list.get(i);
- Log.e("--ostrichmyself--", info.activityInfo + "-activeInfo-");
- hashMap.put("title", info.loadLabel(pm).toString());
- Intent intent = createIntent(info.activityInfo.applicationInfo.packageName, info.activityInfo.name);
- hashMap.put("intent", intent);
- data.add(hashMap);
- }
- return data;
- }
- protected Intent createIntent(String pkg, String componentName) {
- Intent result = new Intent();
- result.setClassName(pkg, componentName);
- return result;
- }
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- HashMap<String, Object> map = (HashMap<String, Object>) l.getItemAtPosition(position);
- Intent intent = (Intent) map.get("intent");
- startActivity(intent);
- }
- }
- <activity android:name=".composite.GridActivity001" android:label="Grid效果">
- <intent-filter>
- <category android:name="catagory.ostrichmyself.ui" />
- <action android:name="action.ostrichmyself.ui" />
- </intent-filter>
- </activity>
第一批纳入规划的为UI的布局, 这些布局大多来自比较优秀的实践, 部分采用了反编译的方式得到.
- 并列的应用列表方式.
- 优秀实践的登录界面
展示效果:
Android API个人库的建设源码下载地址:
相关文件下载在帮客之家的1号FTP服务器里,下载地址:
FTP地址:ftp://www.bkjia.com
用户名:www.bkjia.com
密码:www.muu.cc
在 2011年LinuxIDC.com\10月\10月\Android API个人库的建设源码
下载方法见 http://www.bkjia.net/thread-1187-1-1.html
评论暂时关闭