BlogEdition
文章平均质量分 82
Edition
太白邀月
这个作者很懒,什么都没留下…
展开
-
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 · 813 阅读 · 0 评论 -
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 · 897 阅读 · 0 评论 -
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 · 762 阅读 · 0 评论 -
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 · 877 阅读 · 0 评论 -
MobileSafe Day05
//6.判断我们获取的服务的全类名是否和我们传递过来的全类名相同,相同就是表示服务已经开启,不相同就表示服务没有开启。 // 设置view对象的背景,根据保存的选项索引从bgcolor图片数组中获取相应的图片。 // 将布局文件转化成view对象之后,view对象就是控件的最外层的控件。 //1.进程的管理者,活动的管理者。 //5.根据标示获取服务的全类名。5.7动态显示号码归属地的操作# *** //4.获取服务的标示。原创 2024-01-21 11:31:16 · 1062 阅读 · 0 评论 -
MobileSafe Day06
/孩子有了,直接找爹,喜当爹,不使用,不设置属性,父控件会使用原控件的属性。 // textView.setText(“这是一个自定义组合控件的textview”);原创 2024-01-21 11:29:48 · 848 阅读 · 0 评论 -
MobileSafe Day07
/desc倒序查询。 //参数2:查询的字段,两个 new String[]{“blacknum”,“mode”},数据库中的字段。 //获取查询字段在cursor中数据,0:查询中查询字段数组的字段位置。原创 2024-01-21 11:25:44 · 898 阅读 · 0 评论 -
MobileSafe Day08
Day08##8.1 复习 #8.2 删除通话记录 # (知道内容观察者怎么去用)前天实现了挂断电话功能后,运行程序,设置中心打开黑名单拦截,这时去拨打电话比如通讯卫士中119号码设置的是电话拦截,用119给模拟器5554打电话,5554没接收到电话因为已经拦截挂断了电话,但是左下角的通话记录中,还会有119号码记录拦截完电话应该把通话记录里的记录也删掉,这才算完整的拦截电话功能 怎么去删除通话记录? 通话记录就是拨打电话的log显示,DDMS下的data/data/原创 2024-01-21 11:24:07 · 863 阅读 · 0 评论 -
MobileSafe Day09
点击时,如果点击之前是没有选中,点击之后就改为选中,点击之前是选中,点击之后要变成不选中,所以这里是要根据保存的状态去判断,如果appInfo.isChecked()是true,设置appInfo.setChecked()为false,else为false的话,就改为true。再来解决第3个问题,就是将自己都杀掉了的问题,用户不是傻子,用户会想你把所有的进程全都清理掉了,那反过来一想,我现在用的这个是谁啊,用户一下子就会发现我们是在欺骗她,所以说为了做的比较逼真一点,一般我们的进程是不会被杀死的。原创 2024-01-21 11:22:21 · 849 阅读 · 0 评论 -
MobileSafe Day10
一般都是创建一个快键方式就可以了,所以在shortCut方法中,添加一个if判断,当sp.getBoolean(“firstEnter”, true))中没有firstEnter这个值,就来个true,true就要去创建一个快键方式,那创建完了之后,就要更改保存的firstEnter的值了,通过edit.putBoolean(“firstEnter”, false)去保存这个值为false,最后commit。",意思是它的包名不等于我们手机卫士的包名时才杀掉。//通过资源获取屏幕的密度。原创 2024-01-21 11:20:19 · 786 阅读 · 0 评论 -
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 · 907 阅读 · 0 评论 -
MobileSafe Day12
在我给大家的资料中,找到clearpath.db,你sd卡的清理,大家的缓存文件是不是都保存在sd里边啊,那sd里边的目录我们是不是自己就可以删掉的,不像手机里的目录,我们是不能删,但是sd里边的目录,比如说那个文件夹,我们自己可以用java代码删掉。既然为空了,判断一下就可以了,退出之后,子线程中的正在扫描xxx因为看不到了,显示不显示都无所谓了,退出之后,判断这个getActivity()为null了,那你还得运行一段时间,那我不管你了,你去运行你的。原创 2024-01-21 11:01:59 · 901 阅读 · 0 评论 -
MobileSafeSkillPoint
其实它内部就是用了子线程来实现,封装了在子线程之前执行的方法onPreExecute,在子线程之中执行的方法doInBackground,在子线程之后执行的方法onPostExecute,通过在execute方法中调用onPreExecute,然后在创建子线程来执行我们要实现的耗时操作,其实就是在子线程中调用doInBackground实现耗时操作,最后通过给handler发送一个消息,到handler中去执行onPostExecute。//desc倒序查询。”, null, null)发送短信。原创 2024-01-15 19:25:16 · 955 阅读 · 0 评论 -
SmartBeijingSkillPoint
97.解决按下ViewPager后上下滑动导致事件被ListView处理后不会走到ViewPager的ActionUp导致ViewPager不在自动轮播的问题(使用ViewPager的取消事件ACTION_CANCEL)30.实现在新闻中心页面的侧边栏中分别点新闻,专题,组图,互动,在新闻中心页面展现的是新闻,专题,组图,互动的详情页 ***98.点击轮播图中的imageView跳转到新闻详情页的实现(和listview给某个item设置图片的点击事件一样)原创 2024-01-18 08:59:55 · 1217 阅读 · 0 评论 -
SmartBeijing Day06
,这个是我们这样一个回答对吧,当然还有一个elseif,这是我们发音的一个功能,当然我们发音还有一个功能,就说我们在聊天的时候,或者说话的时候,它会在手机屏幕中间弹出一个对话框,对话框中有个声波,我说句话它就刷刷刷的转,大家都用过这种语音识别的软件吧,你随便语音录入,它是不是最后说话完了之后,它就转几圈,然后把你说话的结果就传上去了吧,有这么一个UI效果,那我们也可以加这样一个语音的UI效果,那这个UI效果其实科大讯飞已经帮我们搞好了,在文档中搜索“语音输入UI”,找到它,那这个语音输入UI怎么去弄呢?原创 2024-01-18 08:57:44 · 878 阅读 · 0 评论 -
SmartBeijing Day05
它说init方法只需要在应用程序启动的时候调用一次该API就可以了,下边举例中写的是一个自定义的ExampleApplication,在这个自定义的ExampleApplication中是不是调用:。 把这个JPush给初始化了一下,所以在这个项目中,我们自己写一个自定义的MyApplication,在这里边是不是还可以捕获全局的异常,做过吧,将上边初始化JPush的代码拷贝到我们的MyApplication中即可。弱引用 WeakReference 内存不够时, 更会考虑回收。原创 2024-01-18 08:56:32 · 841 阅读 · 0 评论 -
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 · 359 阅读 · 0 评论 -
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 · 340 阅读 · 0 评论 -
SmartBeijing Day02
/ 如果当前是打开的状态, 就会关闭侧边栏;如果是关闭状态,就打开侧边栏。打开或关闭侧边栏 如果当前是打开的状态, 就会关闭侧边栏;如果是关闭状态,就打开侧边栏。Day02 04.5个标签页子类实现&禁用Viewpager滑动 ##Day02 05.点击标签切换页面&页面数据初始化优化 ##Day02 10.点击侧边栏切换菜单详情页 ##Day02 06.控制侧边栏可用&不可用 ##day02 08.给侧边栏设置网络数据 ## //隐藏侧边栏按钮。获取侧边栏Fragment对象。原创 2024-01-18 08:50:32 · 829 阅读 · 0 评论 -
SmartBeijing Day01
标注图:把文字大小,背景,文字,图片,颜色,全都标记出来,用于严格要求一款产品,基于主流屏幕1280*720(设备密度是2)智慧北京非常接近实际开发项目,实际开发中,会有很多复杂逻辑,比如调网络接口,这些数据都是从服务器返回给我们解析的。人事,财务,行政助理,老总,产品经理,技术支持,开发人员,测试,售前,销售经理,销售。 目前高级测试人员还不是很多,自动化测试,搞一个工具去跑,这个不多。 产品完成后需要推广,打广告,写软文,把apk发布到应用市场。原创 2024-01-18 08:44:37 · 1128 阅读 · 0 评论 -
GooglePlaySkillPoint
在开发我们下载模块之前,我们单独的写一个类DownloadManager.java 来专门处理我们的下载逻辑,我们全局都要用它下载,我们可以也把它搞成一个单例的。将上边抽取的5条共性写一个自己定义的类来分别处理这些状态,这5种状态可以用一个空的帧布局来表示,这个空的自定类布局为LoadingPage.java。这时候我们又得继续去封装 我们写一个网络访问的最基本的类BaseProtocol 通过这个基本的类把所有的共性抽取到这个类里边来。原创 2024-01-18 08:34:23 · 791 阅读 · 0 评论 -
GooglePlay Day06
写到这里,我们的界面,基本上都写完了,在这个界面中主要去监听它进度的更新,然后不断的去回调,接下来我们就要启动这个下载了,下载在什么启动呢,只有你去点击下载按钮的时候,才开始下载,一开始下载它就运行起来了,运行起来后,我们的界面就不断的刷新了。运行程序,点击下载,下载正常,但是再点击却不能暂停,是因为进度条在显示的时候,我把按钮隐藏了,我们的接听事件,接听的是下载按钮的点击事件,可以把我们那个对象移除掉。线程池写完之后,就可以把我们原来的代码用线程池进行一个改造,先来到我们的LoadingPage中,原创 2024-01-18 08:30:10 · 773 阅读 · 0 评论 -
GooglePlay Day05
然后scrollView有个方法fullScroll,有些方法实在记不住,你就网上查,比如你就百度scrollView滑动到最底部的api 就可以搜出来这个fullScroll方法 有些同学关键字他不会写,多搜几次你就慢慢的会写关键字了, 我们还是百度关键字,点进去具体看下它是怎么去调用,它怎么去调用的呢,第一种方法:它是用Handler post了一个Runnable对象,在Runnable对象里边呢,它去让它滑动即scroll.scrollTo(0,offset);原创 2024-01-18 08:28:28 · 746 阅读 · 0 评论 -
GooglePlay Day04
但是我们在底层(MyBaseAdapter中)去处理的时候 我们是通过hasMore()来表示是有更多还是没有更多 它默认返回的是true 表示它有更多 而如果没有更多的话 子类CategoryFragment就必须重写这个方法并返回false。getViewTypeCount获取布局类型个数 我们当时返回的是两个 因为当时有个加载更多的布局 现在多了一个标题的布局 所以现在有3种布局类型 但是不能在MyBaseAdapter中去改。原创 2024-01-18 08:26:31 · 861 阅读 · 0 评论 -
GooglePlay Day03
有时候你会发现 你用一个大的scrollView去加载一些布局 其实scrollView的高度它是无法确定的 只有你把所有孩子的高度确定出来后 scrollView的高度才能确定出来 它的高度是无法确定的 即使scrollView你的高度写成matchParent wrapContent 还是认为它不确定 直到所有的孩子确定出来 它才能确定 所以这个就是指的未定义宽高。在底层去设置它的宽高的时候,就会用新的宽高去做。同时的话 我们的高度的模式呢 不确定 即&& heightMode!原创 2024-01-18 08:24:58 · 854 阅读 · 0 评论 -
GooglePlay Day02
但是在谷歌电子市场里边 不是这样做的 谷歌电子市场是通过什么去控制分页呢 它没有去通过链接去分页 它每一页的数据 全都是那一个链接 那唯一的区分 就是参数不一样 那通过一个什么参数呢 它是通过一个index 的参数来决定它下一页的一个节度。注意:显示加载更多的布局的时候 是希望可以真的把更多的布局加载出来 所以在上边的MyBaseAdapter中写一个loadMoreData方法让它去加载更多的数据。原创 2024-01-18 08:23:02 · 767 阅读 · 0 评论 -
GooglePlay Day01
一般情况下我们要new一个类 它有一个默认的无参构造方法 我们不需要传任何参数直接可以new 一旦我给一个类加了带参的构造方法之后 这时候你在new这个类的时候 必须把这个构造方法的参数传进去 三个枚举报错是因为 它们本质是对ResultState类的匿名的实现 实现完了之后必须把state这个构造方法参数给它传进去 它们才不会报错。自定义它是为了做一些全局的处理,因为项目一运行,会走application的oncreate方法,在onCreate中便可以申明要做的全局处理。原创 2024-01-18 08:20:29 · 796 阅读 · 0 评论