以下才是今天分享的内容: Android手机卫士开源项目: 此项目是up之前参考互联网视频编写的,完成时间大概是2017年4月份,现在开放源代码到github。...(1)阅读对象:Android开发者(2)推荐阅读对象:拥有Android基础但是没有项目经验的小伙伴。 对于拥有Android基础但是没有项目经验的同学,也许是一个挺棒的参考。...此项目是Android基础综合的一个项目,自定义控件、服务、网络等基本用到,所以学了一些Android基础知识后的小伙伴可以尝试阅读部分源代码,或许会对你的Android基础的巩固有促进作用。...项目运行部分截图如下: 功能列表: 1).手机防盗 2).通信卫士 3).软件管理 4).进程管理 5).流量统计 6).手机杀毒 7).缓存管理 8).高级工具(包或归属地查询、常用号码查询...、程序锁、短信备份) 部分简介: (1)项目使用 xUtils 2.6.14框架实现服务器断端apk升级包的下载; (2)为了实现电话的拦截功能,使用aidl文件进行反射调用; (3)通信卫士模块密码使用
按照模块组织代码的包结构;各个模块之间的业务是独立的 风行网 ----播放器 com.funshion.android.player ----下载模块 com.funshion.android.download...----联网 com.funshion.android.network 按照类型组织代码的包结构 -----界面 com.tsh.activity -----自定义界面 com.tsh.ui...] 工程的创建 使用友盟统计android各个系统的使用率,http://www.umindex.com/devices/android_os ?...应用程序数据的初始化 检查版本信息 检查网络 检查版权 主界面去掉标题栏 清单文件里面,设置主题,android:theme=”@android:style/Theme.Black.NoTitleBar...” 文字的阴影效果 设置阴影颜色 android:shadowColor=”#ff0000” 设置阴影x轴偏移android:shadowDx=”1” 设置阴影y轴便宜 android:shadowDy
手机定位的三种方式:网络定位,基站定位,GPS定位 网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大 基站定位,精确度与基站的多少有关,几十米到几公里的误差 GPS定位,至少需要三颗卫星才能定位...,在空旷的地方准确 手机使用A-GPS需要网络来辅助定位,定位速度快,网络记录了上次的卫星轨道, 获取LocationManager对象,通过getSystemService(LOCATION_SERVICE...获取精准位置 android.permission.ACCESS_COARSE_LOCATION 获取粗略的位置 android.permission.ACCESS_MOCK_LOCATION 获取模拟的位置...; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager...; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast
手机卫士-12 课1 手机杀毒模块 杀毒原理: 1、什么是病毒:特殊的程序,存在在硬盘里面。 – 如何定义计算机病毒: 1、侵犯用户的隐私,偷窃你的私隐数据 2、盗号,偷钱。...6、早起的杀毒软件工作的原理就是: 1、手机常见病毒的特征码,把特征码存放在数据库(病毒库) 2、遍历所有的系统文件,计算他们的特征码,跟病毒数据库进行对比 3、根据比对的结果确定文件是否是病毒。...看雪论坛: 主动防御技术,安卓注入术 课2 乌云网:查漏洞 社会工程学:设密码的习惯 程序员设密码的讲究 1、钱 2、社交 3、下载一下 实现手机杀毒的功能 金山杀毒界面: 新建...} 实现病毒卸载的功能:在查到的前提下,也不实现了 解决手机卫士的边边角角的小问题 1、屏幕适配问题: AppManagerActivity.java—>popupWindow 我们编程时用像素编程...:那么会有各种手机屏幕不适配的问题:那么我们的像素单位要讲究: view.getLocationInWindow(location);// 获取了view对象在窗体上的位置 //50 px 像素,注意
android:toXDelte=”0” 设置y轴来源坐标android:fromYDelta=”0” 设置y轴目的坐标android:toYDelta=”0” 设置执行时间 android:duration...> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500"...android:fromXDelta="100%" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="0...> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500"...android:fromXDelta="-100%p" android:fromYDelta="0" android:toXDelta="0" android:toYDelta=
检测sim卡是否变更 使用广播接收者,监听手机的开机广播 新建一个包 xxx.receiver,新建一个类BootCompleteReceiver.java 清单文件注册一下,添加...节点,设置名称android:name=”xxx” 添加意图过滤器节点 添加动作节点,设置监听动作名称android.intent.action.BOOT_COMPLETED...; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences...; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle...; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.view.View;
:drawableLeft=”@android:drawable/xxxxxxxxxxx”,引用android系统的图标,例如:@android:drawable/star_big_on 图标垂直居中对齐...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="...="#2D89EF" android:gravity="center" android:text="1.手机防盗设置向导" android:textColor...:layout_marginTop="8dp" android:text="手机防盗包含以下功能:" android:textSize="16sp" /> <item android:drawable="
getStringExtra()方法,获取到电话号码 把电话放在Edittext上,当点击下一步的时候保存到SP中 activity package com.qingguow.mobilesafe; import android.content.Intent...; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle...; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.Toast...; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView...; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.SimpleAdapter
activity只需要继承这个基类,实现上下页的抽象方法,就能实现左右滑动效果 BaseSecGuideActivity.java package com.qingguow.mobilesafe; import android.app.Activity...; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; public
对象的query()方法,得到raw_contacts表里面的数据,得到Cursor对象 参数:Uri对象,字段String数组 获取Uri对象,通过Uri.parse(“content://com.android.contacts...Uri对象,字段String[]数组(data1,mimetype),条件String,条件值String[]数组(contact_id) Uri对象是Uri.parse(“content://com.android.contacts.../data”) 循环和上面一样 姓名对应的类型是vnd.android.cursor.item/name 电话对应的类型是vnd.android.cursor.item/phone_v2 需要权限,android.permisssion.READ_CONTACTS...; import android.content.Context; import android.database.Cursor; import android.net.Uri; /** * 读取手机联系人.../raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); List<Map
AnimationUtils.loadAnimation(this, R.anim.shake); et_phone.startAnimation(shake); //手机震动...vibrator.vibrate(2000); Toast.makeText(this, "请输入手机号码", 0).show();...="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXDelta="0"...android:interpolator="@anim/cycle_7" android:toXDelta="10" /> cycle_7.xml
startService()方法 获取到SP中保存的位置信息 发送短信,SmsManager.getDefault().sendTextMessage()方法,发送短信给安全号码,参数:sendTextMessage(目标手机..., null(来源手机不支持), text, sentIntent, deliveryIntent)后两个参数,延迟报告和送达报告,不关心填null 需要这个权限 android.permission.SEND_SMS...; import android.location.Criteria; import android.location.Location; import android.location.LocationListener...; import android.location.LocationManager; import android.os.Bundle; import android.os.IBinder; public...; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences
使用小米号码归属地数据库,有两张表data1和data2 先查询data1表,把手机号码截取前7位 select outkey from data1 where id=”前七位手机号” 再查询data2...id=”上面查出的outkey” 可以使用子查询 select location from data2 where id=(select outkey from data1 where id=”前7位手机号...对象的exist()方法和length()方法大于0 NumberQueryAddressUtil.java package com.qingguow.mobilesafe.utils; import android.database.Cursor...; import android.database.sqlite.SQLiteDatabase; public class NumberQueryAddressUtil { private static...fos.close(); } catch (Exception e) { e.printStackTrace(); } } 相关技术: 知乎:android
View.inflate()方法,获取View对象,参数:上下文,资源文件,null 添加这个View就可以了 package com.qingguow.mobilesafe.service; import android.app.Service...; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color;...import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager...; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.widget.TextView...outcallReceiver=new OutcallReceiver(); IntentFilter filter=new IntentFilter(); filter.addAction("android.intent.action.NEW_OUTGOING_CALL
java.net.MalformedURLException; import java.net.URL; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity...; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager...; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log...; import android.view.animation.AlphaAnimation; import android.widget.TextView; import android.widget.Toast...setAnimation(aa); } private Handler handler = new Handler() { public void handleMessage(android.os.Message
Handler对象的postDelayed()方法,参数:Runable对象,延迟的毫秒数 使用匿名内部类继承Runable对象,重写run()方法,方法里面跳转到主页 升级进度的TextView部分,默认隐藏,android...调用TextView对象的setVisibility(View.VISIBLE) SettingActivity: package com.qingguow.mobilesafe; import android.app.Activity...; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle...; import android.view.View; import android.view.View.OnClickListener; import com.qingguow.mobilesafe.ui.SettingItemView
TextView控件设置单行显示 android:singleLine=”true” 设置TextView开始的位置显示省略号,android:ellipsize=”start” 设置滚动属性,android...; import android.util.AttributeSet; import android.widget.TextView; public class FocusedTextView extends...:singleLine="true" android:ellipsize="marquee" android:text="手机卫士欢迎您,本手机卫士软件不包含任何多余的服务进程...,不包含任何多余的消耗资源的内容" android:layout_width="wrap_content" android:layout_height="wrap_content..." android:layout_marginTop="10dp" /> 效果 ?
; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import...; import android.util.AttributeSet; import android.view.View; import android.widget.CheckBox; import...> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width...="5dp" android:text="自动更新已经关闭" android:textColor="#666666" android:textSize="...android:layout_centerVertical="true" android:clickable="false" /> <View android:
正则表达式完成号码验证, ^以某开头,[] 字符集(匹配中括号里面的任意字符),\d是任意一个数字,{n}表示出现了多少次,$结尾 手机号的正则 ^1[34568]\d{9}$,以1开头,第二个数字是34568
)对象,参数:Adapter对象 Adapter是接口,使用内部类继承BaseAdapter类来定义 定义文字数据,静态String[] names数组,{“手机防盗”,”通讯卫士”} 定义图片数据,静态...GridView gv_home_list; private MyAdapter mAdapter; private static String[] names={ "手机防盗...","通讯卫士","软件管家", "进程管理","流量统计","手机杀毒", "缓存清理","高级工具","设置中心" }; private static...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="...="wrap_content" android:text="手机防盗"/>
领取专属 10元无门槛券
手把手带您无忧上云