自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 MobileSafe Day01

遇到Console控制台,报ADB server didn’t ACK, failed to start daemon 这种情况,那就启动一下任务管理器,在这个任务管理器中,有一个adb exe *32进程,把它结束掉,然后重新启动一下adb即可。运行下程序到手机上之后,手机上的这个应用的版本号就是1.0了,但服务器上我们写的是2.0,所以会弹出对话框提示。运行程序,点击升级,点击Cancel,可以直接跳转到主界面了,在主界面中点击返回键,也可以直接退出到手机桌面。

2024-01-21 11:38:12 786

原创 MobileSafe Day02

/} //方式2: String title = attrs.getAttributeValue(“http://schemas.android.com/apk/res/cn.itcast.mobilesafexian02”, “title”);//设置描述信息的值 //获取checkbox的状态 if (isChecked()) { tv_setting_des.setText(des_on);//不规则加密,加盐。封装到了这个方法中。

2024-01-21 11:36:31 868

原创 MobileSafe Day03

/展示查询出来数据 lv_contact_contacts = (ListView) findViewById(R.id.lv_contact_contacts);//view.findViewById表示去item_contact初始化控件 TextView tv_itemcontact_phone = (TextView) view.findViewById(R.id.tv_itemcontact_phone);Day03 05.界面切换动画# ***

2024-01-21 11:34:35 731

原创 MobileSafe Day04

4.10.gps定位操作移植到手机卫士# ***Day04 06.设置向导流程完成 # ***Day04 02.界面优化处理# ***Day04 03.异步加载框架# **Day04 04.修改进度条样式 # **Day04 08.定位三种方式 # **Day04 9.定位的具体代码# ***Day04 07.接收短信 # ***4.12.超级管理员权限# ***4.11播放报警音乐# ***在子线程之前执行的方法。在子线程之中执行的方法。在子线程之后执行的方法。

2024-01-21 11:33:02 837

原创 MobileSafe Day05

 //6.判断我们获取的服务的全类名是否和我们传递过来的全类名相同,相同就是表示服务已经开启,不相同就表示服务没有开启。 // 设置view对象的背景,根据保存的选项索引从bgcolor图片数组中获取相应的图片。 // 将布局文件转化成view对象之后,view对象就是控件的最外层的控件。 //1.进程的管理者,活动的管理者。 //5.根据标示获取服务的全类名。5.7动态显示号码归属地的操作# *** //4.获取服务的标示。

2024-01-21 11:31:16 1031

原创 MobileSafe Day06

/孩子有了,直接找爹,喜当爹,不使用,不设置属性,父控件会使用原控件的属性。 // textView.setText(“这是一个自定义组合控件的textview”);

2024-01-21 11:29:48 823

原创 MobileSafe Day07

/desc倒序查询。 //参数2:查询的字段,两个 new String[]{“blacknum”,“mode”},数据库中的字段。 //获取查询字段在cursor中数据,0:查询中查询字段数组的字段位置。

2024-01-21 11:25:44 854

原创 MobileSafe Day08

Day08##8.1 复习 #8.2 删除通话记录 # (知道内容观察者怎么去用)前天实现了挂断电话功能后,运行程序,设置中心打开黑名单拦截,这时去拨打电话比如通讯卫士中119号码设置的是电话拦截,用119给模拟器5554打电话,5554没接收到电话因为已经拦截挂断了电话,但是左下角的通话记录中,还会有119号码记录拦截完电话应该把通话记录里的记录也删掉,这才算完整的拦截电话功能 怎么去删除通话记录? 通话记录就是拨打电话的log显示,DDMS下的data/data/

2024-01-21 11:24:07 829

原创 MobileSafe Day09

点击时,如果点击之前是没有选中,点击之后就改为选中,点击之前是选中,点击之后要变成不选中,所以这里是要根据保存的状态去判断,如果appInfo.isChecked()是true,设置appInfo.setChecked()为false,else为false的话,就改为true。再来解决第3个问题,就是将自己都杀掉了的问题,用户不是傻子,用户会想你把所有的进程全都清理掉了,那反过来一想,我现在用的这个是谁啊,用户一下子就会发现我们是在欺骗她,所以说为了做的比较逼真一点,一般我们的进程是不会被杀死的。

2024-01-21 11:22:21 829

原创 MobileSafe Day10

一般都是创建一个快键方式就可以了,所以在shortCut方法中,添加一个if判断,当sp.getBoolean(“firstEnter”, true))中没有firstEnter这个值,就来个true,true就要去创建一个快键方式,那创建完了之后,就要更改保存的firstEnter的值了,通过edit.putBoolean(“firstEnter”, false)去保存这个值为false,最后commit。",意思是它的包名不等于我们手机卫士的包名时才杀掉。//通过资源获取屏幕的密度。

2024-01-21 11:20:19 752

原创 MobileSafe Day11

在TaskEngine中的getTaskInfos方法中,通过am去获取到一个pid,在runningAppProcessInfo中还有一个uid 大家都知道,一个应用就相当于一个用户组,这个uid就是你这个用户的id,它也可以唯一的标识一个程序,即: runningAppProcessInfo.uid //获取应用的uid。然后实现了它的两个方法progress,max,在max方法中用具体的进度条去setMax,在progress方法中用具体的进度条去setProgress。

2024-01-21 11:16:31 880

原创 MobileSafe Day12

在我给大家的资料中,找到clearpath.db,你sd卡的清理,大家的缓存文件是不是都保存在sd里边啊,那sd里边的目录我们是不是自己就可以删掉的,不像手机里的目录,我们是不能删,但是sd里边的目录,比如说那个文件夹,我们自己可以用java代码删掉。既然为空了,判断一下就可以了,退出之后,子线程中的正在扫描xxx因为看不到了,显示不显示都无所谓了,退出之后,判断这个getActivity()为null了,那你还得运行一段时间,那我不管你了,你去运行你的。

2024-01-21 11:01:59 867

原创 SmartBeijingNotes Day06

item布局处理(提问+回答)参照科大讯飞sdk相关文档。6.1 聊天机器人 ##ListView数据展示。解析语音json数据。

2024-01-19 18:03:54 350

原创 SmartBeijingNotes Day05

这些避免内存溢出的引用方式在Android 2.3+的版本上已经不再起太大作用, 因为垃圾回收器会频繁回收非强引用的对象, Android官方建议使用LRUCache. 相关链接: http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html。 // System.out.println(“读取内存图片。 // System.out.println(“读取内存图片成功。// 通过软引用对对象包装。

2024-01-19 18:03:28 313

原创 SmartBeijingNotes Day04

/ 将原始position减去HeaderView的数量,才是准确的position。 String[] items = new String[] { “超大号字体”, “大号字体”, “正常字体”, “小号字体”,。轮播条点击事件处理(OnTouch事件被拦截后,就无法响应点击事件了.) Log.d(TAG, “详情页面:” + position); LogUtils.d(“到底部了”); // 快速滑动或者静止时。设置Item点击监听。处理Item点击事件。

2024-01-19 17:34:07 346

原创 SmartBeijingSkillPoint

97.解决按下ViewPager后上下滑动导致事件被ListView处理后不会走到ViewPager的ActionUp导致ViewPager不在自动轮播的问题(使用ViewPager的取消事件ACTION_CANCEL)30.实现在新闻中心页面的侧边栏中分别点新闻,专题,组图,互动,在新闻中心页面展现的是新闻,专题,组图,互动的详情页 ***98.点击轮播图中的imageView跳转到新闻详情页的实现(和listview给某个item设置图片的点击事件一样)

2024-01-18 08:59:55 1196

原创 SmartBeijing Day06

,这个是我们这样一个回答对吧,当然还有一个elseif,这是我们发音的一个功能,当然我们发音还有一个功能,就说我们在聊天的时候,或者说话的时候,它会在手机屏幕中间弹出一个对话框,对话框中有个声波,我说句话它就刷刷刷的转,大家都用过这种语音识别的软件吧,你随便语音录入,它是不是最后说话完了之后,它就转几圈,然后把你说话的结果就传上去了吧,有这么一个UI效果,那我们也可以加这样一个语音的UI效果,那这个UI效果其实科大讯飞已经帮我们搞好了,在文档中搜索“语音输入UI”,找到它,那这个语音输入UI怎么去弄呢?

2024-01-18 08:57:44 854

原创 SmartBeijing Day05

它说init方法只需要在应用程序启动的时候调用一次该API就可以了,下边举例中写的是一个自定义的ExampleApplication,在这个自定义的ExampleApplication中是不是调用:。 把这个JPush给初始化了一下,所以在这个项目中,我们自己写一个自定义的MyApplication,在这里边是不是还可以捕获全局的异常,做过吧,将上边初始化JPush的代码拷贝到我们的MyApplication中即可。弱引用 WeakReference 内存不够时, 更会考虑回收。

2024-01-18 08:56:32 821

原创 SmartBeijing Day04

Day04 02.下拉刷新实现&刷新状态更新 ##Day04 06.下拉加载更多-脚布局实现 ##Day04 11.WebView介绍和使用 ##Day04 08.下拉刷新&上拉加载总结 ##Day04 13.sharesdk使用 ##Day04 07.下拉加载更多实现 ##Day04 10.跳转新闻详情页面 ##Day04 12.网页字体大小修改 ##Day04 01.昨天内容总结 ##Day04 05.更新刷新时间 ##Day04 09.标记已读未读 ##Day04 14.总结 ##

2024-01-18 08:54:56 338

原创 SmartBeijing Day03

事件处理: 重写TabPagerIndicator的dispatchTouchEvent方法, 请求父控件及祖宗控件不拦截当前控件的事件。Day03 03.ViewPagerIndicator使用&样式修改 ##Day03 11.将头条新闻以头布局形式添加给listview ##Day03 07.头条新闻页面&滑动事件处理 ##Day03 09.头条新闻页面指示器(小圆点)##Day03 06.页签网络数据获取及解析 ##Day03 05.点击按钮切换页签页面##Day03 04.页签滑动事件处理 ##

2024-01-18 08:53:15 319

原创 SmartBeijing Day02

/ 如果当前是打开的状态, 就会关闭侧边栏;如果是关闭状态,就打开侧边栏。打开或关闭侧边栏 如果当前是打开的状态, 就会关闭侧边栏;如果是关闭状态,就打开侧边栏。Day02 04.5个标签页子类实现&禁用Viewpager滑动 ##Day02 05.点击标签切换页面&页面数据初始化优化 ##Day02 10.点击侧边栏切换菜单详情页 ##Day02 06.控制侧边栏可用&不可用 ##day02 08.给侧边栏设置网络数据 ## //隐藏侧边栏按钮。获取侧边栏Fragment对象。

2024-01-18 08:50:32 808

原创 SmartBeijing Day01

 标注图:把文字大小,背景,文字,图片,颜色,全都标记出来,用于严格要求一款产品,基于主流屏幕1280*720(设备密度是2)智慧北京非常接近实际开发项目,实际开发中,会有很多复杂逻辑,比如调网络接口,这些数据都是从服务器返回给我们解析的。人事,财务,行政助理,老总,产品经理,技术支持,开发人员,测试,售前,销售经理,销售。 目前高级测试人员还不是很多,自动化测试,搞一个工具去跑,这个不多。 产品完成后需要推广,打广告,写软文,把apk发布到应用市场。

2024-01-18 08:44:37 1102

原创 GooglePlaySkillPoint

在开发我们下载模块之前,我们单独的写一个类DownloadManager.java 来专门处理我们的下载逻辑,我们全局都要用它下载,我们可以也把它搞成一个单例的。将上边抽取的5条共性写一个自己定义的类来分别处理这些状态,这5种状态可以用一个空的帧布局来表示,这个空的自定类布局为LoadingPage.java。这时候我们又得继续去封装 我们写一个网络访问的最基本的类BaseProtocol 通过这个基本的类把所有的共性抽取到这个类里边来。

2024-01-18 08:34:23 769

原创 GooglePlay Day06

写到这里,我们的界面,基本上都写完了,在这个界面中主要去监听它进度的更新,然后不断的去回调,接下来我们就要启动这个下载了,下载在什么启动呢,只有你去点击下载按钮的时候,才开始下载,一开始下载它就运行起来了,运行起来后,我们的界面就不断的刷新了。运行程序,点击下载,下载正常,但是再点击却不能暂停,是因为进度条在显示的时候,我把按钮隐藏了,我们的接听事件,接听的是下载按钮的点击事件,可以把我们那个对象移除掉。线程池写完之后,就可以把我们原来的代码用线程池进行一个改造,先来到我们的LoadingPage中,

2024-01-18 08:30:10 755

原创 GooglePlay Day05

然后scrollView有个方法fullScroll,有些方法实在记不住,你就网上查,比如你就百度scrollView滑动到最底部的api 就可以搜出来这个fullScroll方法 有些同学关键字他不会写,多搜几次你就慢慢的会写关键字了, 我们还是百度关键字,点进去具体看下它是怎么去调用,它怎么去调用的呢,第一种方法:它是用Handler post了一个Runnable对象,在Runnable对象里边呢,它去让它滑动即scroll.scrollTo(0,offset);

2024-01-18 08:28:28 725

原创 GooglePlay Day04

但是我们在底层(MyBaseAdapter中)去处理的时候 我们是通过hasMore()来表示是有更多还是没有更多 它默认返回的是true 表示它有更多 而如果没有更多的话 子类CategoryFragment就必须重写这个方法并返回false。getViewTypeCount获取布局类型个数 我们当时返回的是两个 因为当时有个加载更多的布局 现在多了一个标题的布局 所以现在有3种布局类型 但是不能在MyBaseAdapter中去改。

2024-01-18 08:26:31 845

原创 GooglePlay Day03

有时候你会发现 你用一个大的scrollView去加载一些布局 其实scrollView的高度它是无法确定的 只有你把所有孩子的高度确定出来后 scrollView的高度才能确定出来 它的高度是无法确定的 即使scrollView你的高度写成matchParent wrapContent 还是认为它不确定 直到所有的孩子确定出来 它才能确定 所以这个就是指的未定义宽高。在底层去设置它的宽高的时候,就会用新的宽高去做。同时的话 我们的高度的模式呢 不确定 即&& heightMode!

2024-01-18 08:24:58 830

原创 GooglePlay Day02

但是在谷歌电子市场里边 不是这样做的 谷歌电子市场是通过什么去控制分页呢 它没有去通过链接去分页 它每一页的数据 全都是那一个链接 那唯一的区分 就是参数不一样 那通过一个什么参数呢 它是通过一个index 的参数来决定它下一页的一个节度。注意:显示加载更多的布局的时候 是希望可以真的把更多的布局加载出来 所以在上边的MyBaseAdapter中写一个loadMoreData方法让它去加载更多的数据。

2024-01-18 08:23:02 736

原创 GooglePlay Day01

一般情况下我们要new一个类 它有一个默认的无参构造方法 我们不需要传任何参数直接可以new 一旦我给一个类加了带参的构造方法之后 这时候你在new这个类的时候 必须把这个构造方法的参数传进去 三个枚举报错是因为 它们本质是对ResultState类的匿名的实现 实现完了之后必须把state这个构造方法参数给它传进去 它们才不会报错。自定义它是为了做一些全局的处理,因为项目一运行,会走application的oncreate方法,在onCreate中便可以申明要做的全局处理。

2024-01-18 08:20:29 773

原创 GooglePlayNotes Day06

download?// 从头开始下载文件。 // 如果当前状态是等待下载或者正在下载, 需要暂停当前任务。 // 左上角显示返回图标, 和侧边栏绑定后显示侧边栏图标。 // 获取actionbar对象。 // 获取actionbar对象。 // 停止当前的下载任务。 // 左上角显示logo。 // 左上角显示logo。 // 左上角显示返回图标。 // 下载状态发生变化。 // 需要断点续传。

2024-01-18 08:08:16 760

原创 GooglePlayNotes Day05

 if (mLineList.size() < MAX_LINE) {// 判断是否超过最大行数。 // 通过while循环,一层一层往上找, 直到找到ScrollView后结束。 // 更新left值,作为下一个控件的left位置。 // 当某个控件独占一行时,才有可能走到此处。 // 获取可用高度(减去上线边距)。 // 将最新的行对象添加到集合中。 // 计算留白宽度。 // 获取宽度模式。 // 获取高度模式。

2024-01-16 15:00:45 343

原创 GooglePlayNotes Day04

 // 会将最新的高度值不断回调在onAnimationUpdate方法中,在onAnimationUpdate中更新布局高度。 // 初始化按指定值变化的动画器, 布局高度从mDesRootHeight变化到0,此方法调用,并开启动画之后,。 // 初始化按指定值变化的动画器, 布局高度从0变化到mDesRootHeight。(详情页-应用信息模块)DetailAppInfoHolder。 // 收起描述信息。 // 展开描述信息。

2024-01-16 14:58:57 310

原创 GooglePlayNotes Day03

BitmapUtils不是单例的,为了保证整个应用共用一个对象(避免多个对象造成内存溢出), 需要封装BitmapHelper,获取BitmapUtils对象.获取BitmapUtils对象, 保证多个模块共用一个BitmapUtils对象,避免内存溢出。为了让图片按照完美比例进行展现, 不被压缩, 需要自定义控件,该控件可以根据预设的比例来确定宽高。在HomeFragment的getData方法中打断点, 逐步跟踪到解析json的逻辑中。按照比例展示宽高的自定义控件。 // 初始化对象。

2024-01-16 14:57:11 332

原创 GooglePlayNotes Day02

 if (data instanceof List) {//判断当前对象是否是一个集合。 // 先从本地缓存中读取数据,如果有,就直接返回,如果没有,才从网络加载。 if (!list.isEmpty()) {//数据不为空,访问成功。 // 以网络链接作为文件名称,保证特定接口对应特定数据。 // 以网络链接作为文件名称,保证特定接口对应特定数据。 // 将缓存写到本地文件中。 //获取更多数据。 // 获取系统缓存目录。

2024-01-16 14:55:42 293

原创 GooglePlayNotes Day01

 STATE_SUCCESS(STATE_LOAD_SUCCESS), // 访问成功。 STATE_EMPTY(STATE_LOAD_EMPTY), // 数据为空。解决v4包冲突问题(删除当前项目中的v4包,使用appcompat中的v4包)

2024-01-16 14:53:36 321

原创 SmartBeijingNotes Day03

处理轮播条滑动事件(自定义HorizontalScrollViewPager)ListView增加HeaderView, 使顶部新闻和列表新闻成为一个整体。使用ViewHolder对ListView进行优化。ListView滑动出现黑色背景的问题。##3.1 前两天课程总结 ####3.3 页签详情页开发 ##ListView网络数据填充。##3.4 第三天总结 ####3.2 细节处理 ##顶部新闻数据展示(轮播条)ScaleType简单介绍。ViewPager适配器。自定义ListView。

2024-01-16 14:09:13 337

原创 SmartBeijingNotes Day02

自定义NoScrollViewPagerRadioGroup处理性能优化设置"首页"和"设置"页面SlidingMenu不可用2.2新闻中心页面UI框架搭建新闻中心页面布局分析服务器环境搭建将服务器相关代码和文件(zhbj)拷贝到"apache-tomcat-7.0.57\webapps\ROOT"目录下访问链接http://10.0.2.2:8080/zhbj/categories.json, 获取json数据使用工具格式化json, 方便查看.(HiJson,JsonVie

2024-01-15 20:43:32 794

原创 SmartBeijingNotes Day01

1.需求分析2.产品设计3.需求评估4.需求分配5.项目开发6.项目测试7.产品上线8.迭代开发1.4SVN环境搭建1.5欢迎页开发RotateAnimationScaleAnimationAlphaAnimationAnimationSet// 初始化欢迎页面的动画private void initViews() {RelativeLayout rlRoot = (RelativeLayout) findViewById(R.id.rl_root);

2024-01-15 20:13:37 826

原创 MobileSafeNotes Day12

因为获取的时候,只要是flags里面标明的,都是我们在0的时候获取不到的,因为我们所有的里边是不包含这些的,设置这个PackageManager.GET_SIGNATURES标签就表明是要额外的再拿一下它的。前边将扫描程序实现后,接下来就要实现杀毒的效果,去匹配杀毒,对比金山卫士的病毒查杀,它每次也是扫描,扫描到病毒之后,会以不同颜色作为区分标明出来。#12.5获取缓存的操作##12.3缓存清理框架##12.4进度条的操作##12.2杀毒操作##12.6显示缓存##12.7清理缓存##12.9代码混淆#

2024-01-15 20:06:56 321

原创 MobileSafeNotes Day11

11.1解锁操作# (发送广播的操作、服务中注册广播接受广播事件)#11.12杀毒界面# (重点layer-list)#11.3解锁数据库优化操作# (重点)#11.6进度条两种方式# (重点)#11.10抽屉的效果# (重点)#11.2bug处理# (重点)#11.13扫描程序# (重点)#11.5保存短信# (重点)#11.7回调方法#(重点)

2024-01-15 20:05:30 251

MobileSafe代码 mobilesafexian02

MobileSafe代码 mobilesafexian02

2024-02-22

智慧北京总代码及接口需求文档

智慧北京总代码及接口需求文档

2024-02-22

GooglePlay代码及服务器部署

GooglePlay代码及服务器部署

2024-02-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除