首页 文章 精选 留言 我的

精选列表

搜索[AI功能],共10000篇文章
优秀的个人博客,低调大师

MaxCompute2.0新功能介绍

摘要:在过去的两年内,MaxCompute进行了翻天覆地的重构,从1.0版本全面升级到了2.0版本。而大家或许对于MaxCompute 2.0的一些新特性并不了解,在本文中,MaxCompute技术专家秋鹏就为大家详细介绍MaxCompute 2.0的新特性。本文主要围绕以下三个方面进行分享:MaxCompute 2.0简介MaxCompute 2.0 vs 1.0MaxCompute 2.0 vs 竞品一、MaxCompute 2.0简介MaxCompute之所以要进行重构是因为MaxCompute 1.0上存在很多问题,在MaxCompute 2.0的概念提出前,MaxCompute就已经在线上服务内部和外部用户一段时间了,并且也获得了一些积极的反馈。但是MaxCompute 1.0中也存在一些问题需要解决,这些问题大概分为两

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

Android免费集成推送功能(MobPush)

一、获取AppKey申请MobSDK的appkey流程(http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1)二、配置gradle1、打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:+’,如下所示; buildscript { repositories { jcenter() } dependencies { ... classpath 'com.mob.sdk:MobSDK:+' } } 2、在使用MobPush模块的build.gradle中,添加MobSDK插件和扩展,如: // 添加插件 apply plugin: 'com.mob.sdk' // 在MobSDK的扩展中注册MobPush的相关信息 MobSDK { appKey "替换为mob官方申请的appkey" appSecret "替换为mob官方申请的appkey对应的appSecret" MobPush {} } 关于ShareSDK和MobPush的详细说明,请参考其各自的集成文档。三、添加代码1、初始化MobSDK如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用: MobSDK.init(this); 以初始化MobSDK。2、调用API在应用启动后,调用如下api,设置需要监听的内容 MobPush.setAlias(“test1”);//设置别名 MobPush.addTags(java.lang.String[] tags);//设置标签 在需要监听消息回调的地方,调用如下api,设置监听 MobPush.addPushReceiver(new MobPushReceiver() { @Override public void onCustomMessageReceive(Context context, MobPushCustomMessage message) { //接收自定义消息 } @Override public void onNotifyMessageReceive(Context context, MobPushNotifyMessage message) { //接收通知消息 } @Override public void onNotifyMessageOpenedReceive(Context context, MobPushNotifyMessage message) { //接收通知消息被点击事件 } @Override public void onTagsCallback(Context context, String[] tags, int operation, int errorCode) { //接收tags的增改删查操作 } @Override public void onAliasCallback(Context context, String alias, int operation, int errorCode) { //接收alias的增改删查操作 } }); 在退出已经设置了监听的界面时,调用移除监听接口: MobPush.removePushReceiver(receiver); 四、混淆设置MobPush已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对MobPush的混淆操作: -keep class com.mob.**{*;} -dontwarn com.mob.** 五、注意事项 MobSDK默认为MobPush提供最新版本的集成,如果您想锁定某个版本,可以在MobPush下设置“version “某个版本””来固定使用这个版本 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加: repositories { jcenter() } 可参考Sample的github开源地址:https://github.com/MobClub/MobPush-for-Android

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

Activity多功能按钮——基础编

packagecom.smart; importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.app.Dialog; importandroid.content.DialogInterface; importandroid.os.Bundle; importandroid.util.Log; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.ListView; //继承OnClickListener publicclassMainextendsActivityimplementsOnClickListener{ //固定的静态变量, privatefinalintDELETE_FILE=1; privatefinalintSIMPLE_LIST=2; privatefinalintSINGLE_CHOICE_LIST=3; privatefinalintMULTI_LIST=4; privateListViewlv=null; //定义一个字符串数组 privateString[]provinces=newString[]{"中国","泰国","美国","法国", "新加坡","英国"}; //按钮 privateButtonOnClickbuttonOnClick=newButtonOnClick(1); @Override//事件点击 publicvoidonClick(Viewv){ //开关选择 switch(v.getId()){ caseR.id.btnDeleteFile: showDialog(DELETE_FILE); break; caseR.id.btnSimpleList: showDialog(SIMPLE_LIST); break; caseR.id.btnChoiceList: showDialog(SINGLE_CHOICE_LIST); break; caseR.id.btnMultiChoiceList: showDialog(MULTI_LIST); break; caseR.id.btnRemoveDialog: removeDialog(DELETE_FILE); removeDialog(SIMPLE_LIST); removeDialog(SINGLE_CHOICE_LIST); removeDialog(MULTI_LIST); break; } } @Override protectedDialogonCreateDialog(intid){ Log.d("dialog",String.valueOf(id)); //用来判断选择的目标。如果没有选择,并提示出来,选择中了,也显示结果。详看代码 switch(id){ caseDELETE_FILE: returnnewAlertDialog.Builder(this).setIcon(R.drawable.question).setTitle("是否删除文件").setPositiveButton("确定",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ newAlertDialog.Builder(Main.this).setMessage("文件已经被删除").create().show(); } }).setNegativeButton("取消",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ newAlertDialog.Builder(Main.this).setMessage("您已经选择了取消,文件未删除").create().show(); } }).create(); caseSIMPLE_LIST: returnnewAlertDialog.Builder(this).setTitle("选择国家").setItems(provinces,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ finalAlertDialogad=newAlertDialog.Builder(Main.this).setMessage("您已经选择了"+which+":"+provinces[which]).show(); android.os.Handlerhander=newandroid.os.Handler(); hander.postDelayed(newRunnable(){ //线程管理 @Override publicvoidrun(){ ad.dismiss(); } },5*1000); } }).create(); caseSINGLE_CHOICE_LIST: returnnewAlertDialog.Builder(this).setTitle("选择国家").setSingleChoiceItems(provinces,1,buttonOnClick).setPositiveButton("确定",buttonOnClick).setNegativeButton("取消",buttonOnClick).create(); caseMULTI_LIST: AlertDialogad=newAlertDialog.Builder(this).setIcon(R.drawable.image).setTitle("选择国家").setMultiChoiceItems(provinces,newboolean[]{false,true,false,true,false,false},newDialogInterface.OnMultiChoiceClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich,booleanisChecked){ } }).setPositiveButton("确定",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ intcount=lv.getCount(); Strings="您选择了:"; for(inti=0;i<provinces.length;i++){ if(lv.getCheckedItemPositions().get(i)){ s+=i+":"+lv.getAdapter().getItem(i)+""; } } if(lv.getCheckedItemPositions().size()>0){ newAlertDialog.Builder(Main.this).setMessage(s).show(); }else{ newAlertDialog.Builder(Main.this).setMessage("您未选择任何国家").show(); } } }).setNegativeButton("取消",null).create(); lv=ad.getListView(); returnad; } returnnull; } @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); //得到选中的哪一个按钮 ButtonbtnDeletefile=(Button)findViewById(R.id.btnDeleteFile); ButtonbtnSimpleList=(Button)findViewById(R.id.btnChoiceList); ButtonbtnSimngleChoiceList=(Button)findViewById(R.id.btnSimpleList); ButtonbtnMultiChoiceList=(Button)findViewById(R.id.btnMultiChoiceList); ButtonbtnRemoveDialog=(Button)findViewById(R.id.btnRemoveDialog); //绑定监听器 btnDeletefile.setOnClickListener(this); btnSimpleList.setOnClickListener(this); btnSimngleChoiceList.setOnClickListener(this); btnMultiChoiceList.setOnClickListener(this); btnRemoveDialog.setOnClickListener(this); } //定义一个类,用来判断选择中的。 privateclassButtonOnClickimplementsDialogInterface.OnClickListener{ privateintindex; publicButtonOnClick(intindex){ this.index=index; } @Override publicvoidonClick(DialogInterfacedialog,intwhichButton){ if(whichButton>=0){ index=whichButton; }else{ if(whichButton==DialogInterface.BUTTON_POSITIVE){ newAlertDialog.Builder(Main.this).setMessage("您已经选择了:"+index+":"+provinces[index]).show(); }elseif(whichButton==DialogInterface.BUTTON_NEGATIVE){ newAlertDialog.Builder(Main.this).setMessage("你未选择,请选择").show(); } } } } protectedvoidonPrepareDialog(intid,Dialogdialog){ super.onPrepareDialog(id,dialog); } } 另外很多朋友对Android系统构架图还不是很了解,我附上一张中文的图给大家观看 本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/489522,如需转载请自行联系原作者

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

android:eclipse:no proposals没有辅助功能

在mac上刚装完eclipse后,经常使用的eclipse辅助输入的快捷键竟然没有建议,纠结n久,最终还是在stackoverflow找到问题 Tryrestoring the default optionsin 'Windows > Preferences > Java > Editor > Content Assist > Advanced' (example of the kind of data you see in this preference screen, not necessarily what you have though) http://stackoverflow.com/questions/908489/eclipse-java-code-completion-not-working 本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/05/21/2512172.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

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

WebStorm

WebStorm

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

用户登录
用户注册