首页 文章 精选 留言 我的

精选列表

搜索[企业应用],共10000篇文章
优秀的个人博客,低调大师

大数据时代的结构化存储—HBase在阿里的应用实践

福利:国际顶级盛会HBaseCon Asia 2018将于8月在北京举行,目前正免费开放申请中,更多详情参考https://yq.aliyun.com/promotion/631 前言 时间回到2011年,Hadoop作为新生事物,在阿里巴巴已经玩得风生水起,上千台规模的"云梯"是当时国内名声显赫的计算平台。这一年,Hadoop的好兄弟HBase由毕玄大师带入淘宝,开启了它的阿里之旅。从最初的淘宝历史交易记录,到去年的支付宝消费记录存储在线历史存储统一;从蚂蚁安全风控的多年存储演进,到HBase、TT、Galaxy的大数据激情迭代;HBase在阿里经历过年轻的苦涩,释放过青春的活力,也付出过成长的代价。几代人的不懈努力下,五年陈的HBase开始表现出更成熟、更完善、更丰富的一面,成为公司内部被广泛使用的存储产品之一。经过阿里集团内部的

优秀的个人博客,低调大师

Android四大组件应用系列——实现电话拦截和电话录音

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 使用BordercastReceiver和Service组件实现下述功能: 1.当手机处于来电状态,启动监听服务,对来电进行监听录音。 2.设置电话黑名单,当来电是黑名单电话,则直接挂断。 当拨打电话或电话状态发生改变时,系统就会发出有序广播,因此我们可以使用BordercastReceiver接受广播,因BordercastReceiver执行时间短不能执行耗时任务也不能使用子线程,因此我们应启动一个Service来监听电话并进行处理 二、加入AIDL文件 Android没有对外公开结束通话的API,要结束通话就必须使用AIDL与电话管理服务进行通信,并调用服务中的API实现结束通话,这样需要android 源码文件NeighboringCellInfo.aidl和ITelephony.aidl添加到项目中,如图所示: Android Studio 会自动编译产生对应的类文件 三、编写TelReceiver组件 publicclassTelReceiverextendsBroadcastReceiver{ publicTelReceiver(){ } @Override publicvoidonReceive(Contextcontext,Intentintent){ Intenti=newIntent(context,ListenPhoneService.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setAction(intent.getAction()); i.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));//电话号码 i.putExtra(TelephonyManager.EXTRA_STATE, intent.getStringExtra(TelephonyManager.EXTRA_STATE));//电话状态 context.startService(i);//启动服务 } } 注册广播: <receiverandroid:name=".TelReceiver"> <intent-filterandroid:priority="1000"> <actionandroid:name="android.intent.action.PHONE_STATE"/> <actionandroid:name="android.intent.action.NEW_OUTGOING_CALL"/> </intent-filter> </receiver> 四、编写ListenPhoneService组件 publicclassListenPhoneServiceextendsService{ privateAudioManagermAudioManager; privateTelephonyManagertm; publicListenPhoneService(){ } @Override publicvoidonCreate(){ super.onCreate(); mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE); tm=(TelephonyManager)getSystemService(Service.TELEPHONY_SERVICE); } @Override publicintonStartCommand(Intentintent,intflags,intstartId){ if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){//去电广播,android没有来电话广播 }else{//去掉拨打电话就是来电状态了 //方法1 //获得来电电话 //Stringnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); //获得电话状态 //Stringstate=intent.getStringExtra(TelephonyManager.EXTRA_STATE); //Log.d("jereh","incomingphone:"+number); //Log.d("jereh","callstate:"+state); //TelephonyManager.EXTRA_STATE_IDLE:没有来电或者挂断 //TelephonyManagerEXTRA_STATE_OFFHOOK:接起电话 //TelephonyManager.EXTRA_STATE_RINGING:当电话呼入时,响铃时 //if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){ //if(number.equals("13280998858")){//拦截指定的电话号码 //mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); //Log.d("jereh","电话被拦截"); //stopCall(); //mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);//恢复铃声 //} //}elseif(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){ //接起电话 //recordCall();//开始录音 //}elseif(state.equals(TelephonyManager.EXTRA_STATE_IDLE)){ //stopCall();//停止录音 //} //方法2 //设置一个监听器,监听电话状态 tm.listen(listener,PhoneStateListener.LISTEN_CALL_STATE); } returnsuper.onStartCommand(intent,flags,startId); } /** *挂断电话 */ privatevoidstopCall(){ try{ //Android的设计将ServiceManager隐藏了,所以只能使用反射机制获得。 Methodmethod=Class.forName("android.os.ServiceManager").getMethod("getService",String.class); IBinderbinder=(IBinder)method.invoke(null,newObject[]{"phone"});//获得系统电话服务 ITelephonytelephoney=ITelephony.Stub.asInterface(binder); telephoney.endCall();//挂断电话 stopSelf();//停止服务 }catch(Exceptione){ e.printStackTrace(); } } PhoneStateListenerlistener=newPhoneStateListener(){ @Override publicvoidonCallStateChanged(intstate,StringincomingNumber){ switch(state){ //手机空闲了 caseTelephonyManager.CALL_STATE_IDLE: stopCall();//停止录音 break; //接起电话 caseTelephonyManager.CALL_STATE_OFFHOOK: recordCall();//开始录音 break; //响铃时 caseTelephonyManager.CALL_STATE_RINGING: Log.e("jereh","来电号码是:"+incomingNumber); //如果该号码属于黑名单 if(incomingNumber.equals("123456")){ //如果是黑名单,就进行屏蔽 stopCall(); } break; } } }; /** *停止录音 */ privatevoidstopRecord(){ if(recording){ recorder.stop(); recorder.release(); recording=false; stopSelf();//停止服务 } } /** *电话录音 */ privateMediaRecorderrecorder; privatebooleanrecording; privatevoidrecordCall(){ Log.d("jereh","recordcalling") if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ recorder=newMediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//读麦克风的声音 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置输出格式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//编码方式 Filefile=newFile(Environment.getDownloadCacheDirectory().getAbsolutePath(),"recorder"); if(!file.exists()){ file.mkdir(); } recorder.setOutputFile(file.getAbsolutePath()+"/" +System.currentTimeMillis()+"3gp");//存放的位置是放在sd卡recorder目录下 try{ recorder.prepare(); recorder.start(); recording=true; }catch(IOExceptione){ e.printStackTrace(); } } } @Override publicIBinderonBind(Intentintent){ thrownewUnsupportedOperationException("Notyetimplemented"); } } 复制代码 ServiceXML配置 <service android:name=".ListenPhoneService" android:enabled="true" android:exported="true"> </service> 五、***别忘了一些权限的设置 <!--添加访问手机电话状态的权限--> <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/> <!--拨打电话权限--> <uses-permissionandroid:name="android.permission.CALL_PHONE"/> <!--监听手机去电的权限--> <uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"/> <!--在SDCard中创建与删除文件权限--> <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--往SDCard写入数据权限--> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

优秀的个人博客,低调大师

入口价值被高估,微信伺候不了三类应用场景

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 上线一年多后,腾讯理财平台旗下产品理财通终于向微信投诚。 10月13日,理财通打出了新的旗号——微信理财,你就理财通,并且更换了全新的品牌标识和推广slogan。这意味着,理财通将彻底定位微信理财产品。 在与余额宝的初步较量中,理财通完全被压制从而溃败。此举重整旗鼓,理财通将身家全部压在微信上,笃信微信入口价值。腾讯互联网金融市场负责人林文钦认为,“大家都在用微信经营人脉,为什么不用微信经营钱脉呢?” 逻辑如此,但并不能破。与理财通一样,电商、本地生活服务都迷恋微信入口,也都毫无征兆地在微信上迷失,甚至死亡。如同格林斯潘在《动荡的世界》中阐述危机的根源一样——恐惧与狂热、从众行为、依赖倾向…… 微信入口依赖症显现。在腾讯系产品相互争得头破血流后,拿到一级甚至二三级入口的幸运儿用实践证明——微信入口的价值被严重高估,至少在电商、理财和O2O上。 从易迅到京东,购物一级入口之殇 在腾讯打包旗下电商资产给京东后,易迅彻底成为了京东的背影,如今改弦易帜转型媒体社区。易迅内部人士透露,易迅的调整还在继续,人员动荡依然未止。 还记否,当年易迅占据微信独家购物入口,意气风发。原易迅CEO卜广齐曾希望借助微信在移动端流量的支持,打一场家电数码翻身战,咬住京东,实现弯道超车。 但是结果并不如人意。艾瑞咨询2013年监测的自营B2C数据中,京东、苏宁易购、当当的市场份额都超过易迅,其中京东的市场占有率是易迅的8倍。易迅并没有通过微信、QQ等***的资源价值缩小规模上的差距。 电商是无规模不经济。在资源投入和回报不匹配时,腾讯断臂求生。就在京东上市前夕,腾讯果断割舍自营的电商业务,成为京东基石投资者,易迅和QQ网购、拍拍网等都打包给了京东。 合并易迅之后,京东顺理成章接手微信购物的一级入口,但效果同样不佳。京东方面曾透露,微信和QQ的一级入口,带来的订单成交只占了京东移动端成交的极少一部分。在京东的财报中,微信带来的GMV至今未作披露。 事实上,这也并不奇怪。如果靠QQ和微信的流量,就能把电商做起来,那腾讯也不至于把做了十多年的腾讯拍拍以及全资收购的易讯,都处理给京东了。 东施效颦,微信理财的亦步亦趋 2013年下半年,余额宝一炮而红之后,腾讯防御性地东施效颦,推出了理财通,在PC、手机QQ和微信三端同时发力。 成立之初,理财通联合了国内多家大型基金公司,声势不可谓不大。与支付宝多年数据沉淀不同的是,用户信息匮乏、数据纬度单一、账户体系不完整的微信用户,并不能给理财通提供充足弹药。相反,很多用户数据需要从零开始。 战争的一开始就是不对等的,加上理财通战略上的摇摆,使得在微信上的进展缓慢。理财通公布的数据显示,截至今年10月1日,理财通用户突破2000万。而天弘基金2015年半年报披露显示,至今年6月底,余额宝用户数已经增至2.26亿,成为全球客户数最多的基金。 究其原因,理财通的底层没有建设好。支付是场景革命,理财通建立在场景之上,并且要与之有效结合,才能为用户提供给你真正价值。 为此,微信在场景布局上花尽心思,包括给投资京东和大众点评提供入口,甚至给京东提供一级入口。同时,还投资滴滴、58同城等O2O生活服务相关场景。 援引知乎上腾讯征信中心产品经理的话说,如果说QQ掌握了人与人关系链的信息网络,那么支付宝掌握了具有真实身份社会人的“消费-结算”信息网络,一者做关系链,一者做资金流,壁垒已形成。 大众点评被合并,微信本地生活服务待解 时至今日,今日资本徐新千算万算,应该没算到微信对大众点评的价值并没有想象的那么重要。 2013年,徐新担忧微信对点评的威胁会使得后者在移动浪潮下会被颠覆。2014年2月,在今日资本、红杉资本等PE的推动下,大众点评CEO张涛为首的管理团队接受了腾讯的投资,并如愿获得微信的二级入口——吃喝玩乐。 然而,在过去的1年半时间里,大众点评并未在与美团的竞争中占据优势,反而现在不得不与美团合并。按照资本市场对两者的估值考量,大众点评处在被合并的一方,处于话语权的劣势。 数据显示,美团目前的日成交单量约420万,大众点评约70万,而新口碑仅餐饮的单日成交量现已经超过200万笔。此外,还有百度追加200亿投入的糯米亦是步步紧逼。 值得玩味的是,无论是张涛本人,还是资本方,都要求大众点评将重点放在移动端。在大众点评第四轮融资(2012年8月)的时候,张涛给公司10亿美金的估值如此划分:7亿在移动端,3亿在团购上。 即便是战略上的高度重视,战术上的合纵连横,大众点评都没有通过微信真正搞定吃喝玩乐。另一个佐证便是,大众点评改道在低频的婚嫁、美业上垂直拓展。 大众点评联合创始人龙伟在接受媒体采访时就坦诚,微信的入口功能被夸大,是媒体对于微信入口的期望值过高。因为毕竟微信不是一切,做业务本身还是要靠自己。 毋庸置疑,电商、理财、O2O本地生活服务,这三个在近年最受关注的领域,都证实了微信入口的价值被严重高估。移动互联网与商业的结合,早已不是简单的入口之争,不是有了流量就有了一切,也不再仅仅是支付的竞争,而是商业全链路,即所有环节价值的竞争。 【责任编辑: chenqingxiang TEL:(010)68476606】

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册