基本信息
源码名称:android 手机小卫士完整源码下载
源码大小:10.93M
文件格式:.rar
开发语言:Java
更新时间:2014-10-20
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
手机卫士源码,内涵apk,源码,密钥,关键地方含有注释
部分代码如下:
package com.mowen.mobilesafe; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.StatFs; import android.text.format.Formatter; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.ScaleAnimation; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.mowen.mobilesafe.domain.AppInfo; import com.mowen.mobilesafe.engine.AppInfoProvider; import com.mowen.mobilesafe.utils.DensityUtil; /** * ============================================================ * * 版权 :手机卫士 版权所有 (c) 2014 * * 作者:mowen * * 版本 :1.0 * * 创建日期 : 2014-9-10 上午12:45 * * 描述 :软件管理 * * 修订历史 : * * ============================================================ **/ public class AppManagerActivity extends Activity implements OnClickListener { private static final String TAG = "AppManagerActivity"; private TextView tv_avail_rom; private TextView tv_avail_sd; private ListView lv_appmanager; private LinearLayout ll_loading; private List<AppInfo> appInfos; private TextView tv_status; private LinearLayout ll_start; private LinearLayout ll_share; private LinearLayout ll_uninstall; /** * 被点击的条目 */ private AppInfo appInfo; /** * 用户程序集合 */ private List<AppInfo> userAppInfos; /** * 系统程序集合 */ private List<AppInfo> systemAppInfos; private PopupWindow popupWindow; private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { ll_loading.setVisibility(View.GONE); lv_appmanager.setAdapter(new AppInfoAdapter()); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_app_manager); tv_avail_rom = (TextView) findViewById(R.id.tv_avail_rom); tv_avail_sd = (TextView) findViewById(R.id.tv_avail_sd); tv_avail_sd.setText("SD卡可用:" getTotalSpace(Environment.getExternalStorageDirectory() .getAbsolutePath())); tv_avail_rom.setText("内存可用:" getTotalSpace(Environment.getDataDirectory() .getAbsolutePath())); lv_appmanager = (ListView) findViewById(R.id.lv_appmanager); tv_status = (TextView) findViewById(R.id.tv_status); lv_appmanager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Object obj = lv_appmanager.getItemAtPosition(position); if (obj != null) { dismissPopupWindow(); appInfo = (AppInfo) obj; View contentView = View.inflate(getApplicationContext(), R.layout.popup_item, null); ll_uninstall = (LinearLayout) contentView .findViewById(R.id.ll_uninstall); ll_start = (LinearLayout) contentView .findViewById(R.id.ll_start); ll_share = (LinearLayout) contentView .findViewById(R.id.ll_share); ll_share.setOnClickListener(AppManagerActivity.this); ll_start.setOnClickListener(AppManagerActivity.this); ll_uninstall.setOnClickListener(AppManagerActivity.this); // 播放动画有一个前提 就是窗体必须有背景 popupWindow = new PopupWindow(contentView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // ☆ 注意: 必须要设置背景 popupWindow.setBackgroundDrawable(new ColorDrawable( Color.TRANSPARENT)); int[] location = new int[2]; view.getLocationInWindow(location); //根据手机手机的分辨率 把60dip 转化成 不同的值 px int px = DensityUtil.dip2px(getApplicationContext(), 60); popupWindow.showAtLocation(parent, Gravity.TOP Gravity.LEFT, px, location[1]); AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f); aa.setDuration(200); ScaleAnimation sa = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(200); AnimationSet set = new AnimationSet(false); set.addAnimation(sa); set.addAnimation(aa); contentView.startAnimation(set); } } }); // tv_status.setPadding(0, 0, 0, 0); lv_appmanager.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { dismissPopupWindow(); if (userAppInfos != null && systemAppInfos != null) { if (firstVisibleItem > userAppInfos.size()) { tv_status.setText("系统程序(" systemAppInfos.size() ")"); } else { tv_status.setText("用户程序(" userAppInfos.size() ")"); } } } }); ll_loading = (LinearLayout) findViewById(R.id.ll_loading); fillData(); } private void fillData() { ll_loading.setVisibility(View.VISIBLE); new Thread() { public void run() { appInfos = AppInfoProvider.getAppInfos(getApplicationContext()); userAppInfos = new ArrayList<AppInfo>(); systemAppInfos = new ArrayList<AppInfo>(); for (AppInfo appinfo : appInfos) { if (appinfo.isUserApp()) { userAppInfos.add(appinfo); } else { systemAppInfos.add(appinfo); } } handler.sendEmptyMessage(0); }; }.start(); } /** * 获取某个路径可用的空间 * * @param path * @return */ public String getTotalSpace(String path) { StatFs stat = new StatFs(path); long count = stat.getAvailableBlocks(); long size = stat.getBlockSize(); return Formatter.formatFileSize(this, count * size); } private void dismissPopupWindow() { if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(); popupWindow = null; } } private class AppInfoAdapter extends BaseAdapter { @Override public int getCount() { // 多了两个textview的item 所以 1 1 return userAppInfos.size() 1 systemAppInfos.size() 1; } // 控制每个位置显示的内容。 @Override public View getView(int position, View convertView, ViewGroup parent) { final AppInfo appInfo; if (position == 0) {// 显示一个textview告诉用户有多少个用户应用 TextView tv = new TextView(getApplicationContext()); tv.setText("用户程序 (" userAppInfos.size() ")"); tv.setTextColor(Color.WHITE); tv.setBackgroundColor(Color.GRAY); return tv; } else if (position == (userAppInfos.size() 1)) { TextView tv = new TextView(getApplicationContext()); tv.setText("系统程序 (" systemAppInfos.size() ")"); tv.setTextColor(Color.WHITE); tv.setBackgroundColor(Color.GRAY); return tv; } else if (position <= userAppInfos.size()) { // 用户程序。 int newposition = position - 1; appInfo = userAppInfos.get(newposition); } else { // 系统程序 int newposition = position - 1 - userAppInfos.size() - 1; appInfo = systemAppInfos.get(newposition); } View view; ViewHolder holder; if (convertView != null && convertView instanceof RelativeLayout) { view = convertView; holder = (ViewHolder) view.getTag(); } else { view = View.inflate(getApplicationContext(), R.layout.list_app_item, null); holder = new ViewHolder(); holder.iv = (ImageView) view.findViewById(R.id.iv_icon); holder.tv_name = (TextView) view.findViewById(R.id.tv_name); holder.tv_location = (TextView) view .findViewById(R.id.tv_location); view.setTag(holder); holder.bt_uninstall = (Button) view.findViewById(R.id.bt_uninstall); } holder.tv_location.setTextColor(Color.GRAY); holder.iv.setImageDrawable(appInfo.getIcon()); holder.tv_name.setText(appInfo.getName()); if (appInfo.isInRom()) { holder.tv_location.setText("手机内存"); } else { holder.tv_location.setText("外部存储卡"); } holder.bt_uninstall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { uninstall(appInfo); } }); return view; } @Override public Object getItem(int position) { AppInfo appInfo; if (position == 0) {// 显示一个textview告诉用户有多少个用户应用 return null; } else if (position == (userAppInfos.size() 1)) { return null; } else if (position <= userAppInfos.size()) { // 用户程序。 int newposition = position - 1; appInfo = userAppInfos.get(newposition); } else { // 系统程序 int newposition = position - 1 - userAppInfos.size() - 1; appInfo = systemAppInfos.get(newposition); } return appInfo; } @Override public long getItemId(int position) { return 0; } } static class ViewHolder { ImageView iv; TextView tv_name; TextView tv_location; Button bt_uninstall; } @Override public void onClick(View v) { dismissPopupWindow(); switch (v.getId()) { case R.id.ll_share: Log.i(TAG, "分享:" appInfo.getName()); shareApplication(); break; case R.id.ll_start: Log.i(TAG, "启动:" appInfo.getName()); startApplication(); break; case R.id.ll_uninstall: Log.i(TAG, "卸载:" appInfo.getName()); uninstall(appInfo); break; } } /** * 开启应用 */ private void startApplication() { Intent intent = new Intent(); String packname = appInfo.getPackname(); PackageManager pm = getPackageManager(); try { PackageInfo packinfo = pm.getPackageInfo(packname, PackageManager.GET_ACTIVITIES); ActivityInfo[] activityInfos = packinfo.activities; if(activityInfos!=null&&activityInfos.length>0){ ActivityInfo activityinfo = activityInfos[0]; intent.setClassName(packname, activityinfo.name); startActivity(intent); }else{ Toast.makeText(this, "哎呀,这个应用程序没界面", 0).show(); } } catch (NameNotFoundException e) { e.printStackTrace(); Toast.makeText(this, "没法开这个应用。", 0).show(); } } /** * 分享应用程序 */ private void shareApplication() { Intent intent = new Intent(); // <action android:name="android.intent.action.SEND" /> // <category android:name="android.intent.category.DEFAULT" /> // <data android:mimeType="text/plain" /> intent.setAction("android.intent.action.SEND"); intent.addCategory("android.intent.category.DEFAULT"); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "推荐你使用一个软件,软件的名称叫:" appInfo.getName() ",下载地址:https://play.google.com/store/apps/details?id=" appInfo.getPackname()); startActivity(intent); } private void uninstall(AppInfo appInfo) { if (appInfo.isUserApp()) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_DELETE); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(Uri.parse("package:" appInfo.getPackname())); startActivityForResult(intent, 0); } else { Toast.makeText(this, "系统应用需要有root权限后才能卸载", 0).show(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); fillData(); } }