平台插件化
来源:互联网 发布:淘宝html5模板 编辑:程序博客网 时间:2024/06/11 18:45
package com.example.text;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.ant.liao.GifView;
import com.squareup.picasso.Picasso;
public class MainActivity extends Activity {
private String url="http://t11.baidu.com/it/u=38767480,4056423661&fm=59";
private String path="http://img2.imgtn.bdimg.com/it/u=3853115189,3802116727&fm=21&gp=0.jpg";
private ImageView imageview;
private GifView gf1;
private List<PluginBean> plugins;
private LinearLayout line;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
line = (LinearLayout) findViewById(R.id.line);
attachPlugin(findPlugins());
}
/**
* 加载插件列表
* @param plugins
*/
private void attachPlugin(final List<PluginBean> plugins){
Log.e("ydt", " ");
Log.e("ydt", "----- 列出插件");
this.plugins=plugins;
for(final PluginBean plugin:plugins){
Button btn=new Button(this);
line.addView(btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it=new Intent();
System.out.println("======");
it.setAction(plugin.getPakageName());
//这里,不会把插件的窗体附加到主程序中,纯粹无用的演示
startActivity(it);
}
});
}
}
/**
* 查找插件
* @return
*/
private List<PluginBean> findPlugins(){
plugins = new ArrayList<PluginBean>();
//遍历包名,来获取插件
PackageManager pm=getPackageManager();
List<PackageInfo> pkgs=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for(PackageInfo pkg:pkgs){
//包名
String packageName=pkg.packageName;
String sharedUserId= pkg.sharedUserId;
//sharedUserId是开发时约定好的,这样判断是否为自己人2
if(!"org.igeek.plugintest".equals(sharedUserId)||"com.example.text".equals(packageName))
continue;
//进程名
//String prcessName=pkg.applicationInfo.processName;
//label,也就是appName了
String label=pm.getApplicationLabel(pkg.applicationInfo).toString();
System.out.println(label+"=======");
PluginBean plug=new PluginBean();
plug.setLabel(label);
plug.setPakageName(packageName);
plugins.add(plug);
}
return plugins;
}
}
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.ant.liao.GifView;
import com.squareup.picasso.Picasso;
public class MainActivity extends Activity {
private String url="http://t11.baidu.com/it/u=38767480,4056423661&fm=59";
private String path="http://img2.imgtn.bdimg.com/it/u=3853115189,3802116727&fm=21&gp=0.jpg";
private ImageView imageview;
private GifView gf1;
private List<PluginBean> plugins;
private LinearLayout line;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
line = (LinearLayout) findViewById(R.id.line);
attachPlugin(findPlugins());
}
/**
* 加载插件列表
* @param plugins
*/
private void attachPlugin(final List<PluginBean> plugins){
Log.e("ydt", " ");
Log.e("ydt", "----- 列出插件");
this.plugins=plugins;
for(final PluginBean plugin:plugins){
Button btn=new Button(this);
line.addView(btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it=new Intent();
System.out.println("======");
it.setAction(plugin.getPakageName());
//这里,不会把插件的窗体附加到主程序中,纯粹无用的演示
startActivity(it);
}
});
}
}
/**
* 查找插件
* @return
*/
private List<PluginBean> findPlugins(){
plugins = new ArrayList<PluginBean>();
//遍历包名,来获取插件
PackageManager pm=getPackageManager();
List<PackageInfo> pkgs=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for(PackageInfo pkg:pkgs){
//包名
String packageName=pkg.packageName;
String sharedUserId= pkg.sharedUserId;
//sharedUserId是开发时约定好的,这样判断是否为自己人2
if(!"org.igeek.plugintest".equals(sharedUserId)||"com.example.text".equals(packageName))
continue;
//进程名
//String prcessName=pkg.applicationInfo.processName;
//label,也就是appName了
String label=pm.getApplicationLabel(pkg.applicationInfo).toString();
System.out.println(label+"=======");
PluginBean plug=new PluginBean();
plug.setLabel(label);
plug.setPakageName(packageName);
plugins.add(plug);
}
return plugins;
}
}
0 0
- 平台插件化
- 平台+插件
- 平台插件学习
- C++插件平台
- Eclipse平台常用插件
- 插件平台设计方案
- Small:轻巧的跨平台插件化框架
- 移动平台插件库--自定义滚动插件
- 平台+插件源代码最新地址
- 我的平台+插件观
- Netbeans平台安装Scala插件
- 平台+插件软件设计基本思想
- Windows Phone 平台插件 C1Popup
- Flutter进阶—平台插件
- 不同平台插件目录名
- 平台+插件软件设计思想源代码说明
- gvim插件taglist安装(windows平台)
- Pentaho平台上加仪表盘插件步骤
- Codeblocks下搭建gtest框架
- 【刷题之路】不使用额外空间交换两个数
- Java用字符串生成的md5,sha1作为数据库主键, 去重
- 为何有了组件, 还要有微服务?
- image圆形图片
- 平台插件化
- Java 中 List 元素排序
- Android调用系统拍照 读取选择的角度
- spring_helloworld
- sql查询重复记录、删除重复记录方法大全
- 不使用中间变量交换两数
- Android旋转图片
- java6.01学习笔记TCPServer
- 九度 题目1176:树查找