首页 文章 精选 留言 我的

精选列表

搜索[微服务快速开发平台],共10000篇文章
优秀的个人博客,低调大师

eclipse上Android NDK开发环境搭建

首先要有已集成好Android adt插件的eclipse,如果没有,到http://developer.android.com/sdk/index.html下载已集成ADT的eclipse。 下载Android NDK包http://developer.android.com/tools/sdk/ndk/index.html并解压。 打开eclipse,点击菜单栏 Windows ---> Preferences---> Android ---> NDK 找到上一步解压的NDK,点击OK 保存。 新建一个Android项目ndktest,并在工程下新建jni文件夹。 在编写native函数,例在com.example.ndktest下创建类 myjni。 运行cmd,定位到ndktest根目录下,运行命令javah -classpath bin\classes -d jni com.example.ndktest.myjni 会在jni文件下生成一个h头文件。 如果点开有报错,可以忽略它,可能因为找不到jni.h这个头文件,先不管。 在jni文件夹下编写com_example_ndktest_myjni.c文件实现方法getSum。 在jni文件夹下编写android.mk文件 在package Explorer 里,右键工程 ----> Properties 选择Program ---> OKOK 保存。 libmyjni.so 动态库已生成libs\armeabi文件夹下。 后面附上HTK中工具HCopy的Android 动态库工程的源码,下载导入工程后,确保已经安装好NDK,并修改第9步,第二图中的NDK_Builder的location到你的NDK包下的cmd即可。 上述例子工程源码:http://down.51cto.com/data/1499353 HCopy动态库工程源码:http://down.51cto.com/data/1499346 本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1438625,如需转载请自行联系原作者

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

ios开发使用UIWebView显示多种文档

使用UIWebView显示多种文档 除了HTML的内容,UIWebView还可以显示多种类型的文档 包括以下的类型 ·Excel (.xls) ·Keynote (.key.zip) ·Numbers (.numbers.zip) ·Pages (.pages.zip) ·PDF (.pdf) ·Powerpoint (.ppt) ·Word (.doc) ·Rich Text Format (.rtf) ·Rich Text Format Directory (.rtfd.zip) ·Keynote '09 (.key) ·Numbers '09 (.numbers) ·Pages '09 (.pages) 其中的rtfd必须是文档包的格式并且时zip压缩,同时调用时还应该保留文件后缀名rtfd.zip 使用时参照 -(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView { NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request]; } // Calling -loadDocument:inView: [self loadDocument:@"mydocument.rtfd.zip" inView:self.myWebview]; 本文转自 arthurchen 51CTO博客,原文链接:http://blog.51cto.com/arthurchen/801318,如需转载请自行联系原作者

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

Android开发应用实例:ListView的应用

该程序完成如下功能:1在ListView中显示多个学生的名字。2点击ListView中的条目,查询并显示该学生的年龄、性别、照片等信息。 效果图: student.java packagecom.lingdududu.listview; publicclassStudent{ publicStringsname; publicStringssex; publicintsage; Student(Stringname,Stringsex,intage){ sname=name; ssex=sex; sage=age; } voidStuedent(Stringname){ sname=name; } publicStringgetName(){ returnsname; } publicStringgetSex(){ returnssex; } publicintgetAge(){ returnsage; } publicStringtoString(){ returnsname; } //这个方法返回学生的姓名,性别,年龄 publicStringgetStuIfo(){ return("姓名:"+sname+"\n性别:"+ssex+"\n年龄:"+sage); } } ListViewActivity.java packagecom.lingdududu.listview; importjava.util.ArrayList; importandroid.app.Activity; importandroid.app.AlertDialog; importandroid.content.DialogInterface; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.AdapterView; importandroid.widget.AdapterView.OnItemClickListener; importandroid.widget.ArrayAdapter; importandroid.widget.ListView; /* *@authorlingdududu *该程序的主要功能是点击ListView的学生姓名,就能弹出对话框 *在对话框里面显示学生的详细信息:图片,姓名,性别,年龄 */ publicclassListViewActivityextendsActivity{ privateListViewlv; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); //学生图片的ID数组 finalint[]stu_pic={ R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5, R.drawable.pic6}; finalAlertDialog.Builderbuilder=newAlertDialog.Builder(this); lv=(ListView)findViewById(R.id.list); /*生成动态数组,加入数据*/ finalArrayList<Student>students=newArrayList<Student>(); students.add(newStudent("小张","女",21)); students.add(newStudent("小明","男",22)); students.add(newStudent("小王","男",23)); students.add(newStudent("小丽","女",21)); students.add(newStudent("小红","女",22)); students.add(newStudent("小周","男",23)); ArrayAdapter<Student>adapter=newArrayAdapter<Student> (this,//布局文件 android.R.layout.simple_list_item_1,//android.R.layout.simple_list_item_1,系统定义的布局文件 students);//数据来源 //为ListView设置适配器 lv.setAdapter(adapter); lv.setOnItemClickListener(newOnItemClickListener(){ //arg0发生点击动作的AdapterView //arg1在AdapterView中被点击的视图(它是由adapter提供的一个视图) //arg2视图在adapter中的位置 //arg3被点击元素的行id publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2, longarg3){ //将学生的详细信息在对话框里面显示 builder.setMessage(students.get(arg2).getStuIfo()) //显示学生的图片 .setIcon(stu_pic[arg2]) .setTitle("你好,这是我的详细信息!") .setPositiveButton("确定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ } }); //创建对话框 AlertDialogad=builder.create(); //显示对话框 ad.show(); } }); } } main.xml <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> 附件:http://down.51cto.com/data/2359281 本文转自 lingdududu 51CTO博客,原文链接: http://blog.51cto.com/liangruijun/716529

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

【移动开发】Android中各种xml汇总

Android中xml使用十分广泛,这里简单汇总一下,使其更加系统化! 1.arrays.xml 定义数组 1 2 3 4 5 6 7 <resources> <string-array name= "newstitle" > <item>国际</item> <item>国内</item> <item>军事</item> </string-array> </resources> 2.colors.xml 定义颜色 1 2 3 4 5 6 7 8 9 10 11 <resources> <color name= "blue_sky" >#A0C8FF</color> <color name= "vert_manu" >#CCFF00</color> <color name= "black" ># 000000 </color> <color name= "white" >#FFFFFF</color> <color name= "red" >#FF0000</color> <color name= "link_color" >#FF0066CC</color> <color name= "simiple_button_color" >#FFF</color> <color name= "blue" >#0000FF</color> <color name= "grey" >#FFCBD2D8</color> </resources> 3.dimens.xml 定义尺寸 1 2 3 4 5 <resources> <dimen name= "bottom_tab_font_size" >12dp</dimen> <dimen name= "bottom_tab_padding_up" >5dp</dimen> <dimen name= "bottom_tab_padding_drawable" >8dp</dimen> </resources> 4.drawables.xml 定义画布 1 2 3 4 5 6 7 <resources> <item type= "drawable" name= "shader1" >#7f7f7f7f</item> <item type= "drawable" name= "highlight" >#cf7f7f7f</item> <item type= "drawable" name= "barbg" >#ef0a4267</item> <item type= "drawable" name= "trans" ># 00000000 </item> <item type= "drawable" name= "chatdivider" >#ffd6dadc</item> </resources> 5.strings.xml 定义字符串 1 2 3 4 5 <resources> <string name= "app_name" >Beem</string> <string name= "OkButton" >Ok</string> <string name= "ClearButton" >Clear</string> </resources> 6.styles.xml 定义样式 1 2 3 4 5 6 7 8 9 <resources> <style name= "Label" > <item name= "android:textSize" >18sp</item> <item name= "android:textStyle" >bold</item> <item name= "android:typeface" >sans</item> <item name= "android:focusable" > false </item> <item name= "android:padding" >12dip</item> </style> </resources> 7.selector选择(按下效果) phoinix_popumenu_style.xml 1 2 3 4 5 <selector xmlns:android= "http://schemas.android.com/apk/res/android" > <item android:state_focused= "true" android:state_pressed= "true" android:drawable= "@drawable/phoinix_pushmail_btn_selected" /> <item android:state_focused= "false" android:state_pressed= "true" android:drawable= "@drawable/phoinix_pushmail_btn_selected" /> <item android:state_focused= "true" android:drawable= "@drawable/phoinix_small_selected" /> </selector> 8.menu 菜单 1 2 3 4 5 6 7 8 9 10 11 12 13 <menu xmlns:android= "http://schemas.android.com/apk/res/android" > <group> <item android:id= "@+id/chat_menu_contacts_list" android:visible= "true" android:title= "@string/chat_menu_contacts_list" android:icon= "@drawable/ic_menu_friendslist" /> <item android:id= "@+id/chat_menu_change_chat" android:visible= "true" android:title= "@string/chat_menu_change_chat" android:icon= "@drawable/ic_menu_chat_dashboard" /> </group> <item android:id= "@+id/chat_menu_close_chat" android:visible= "true" android:title= "@string/chat_menu_close_chat" android:icon= "@drawable/ic_menu_end_conversation" /> </menu> 8.anim 旋转动画 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 < set xmlns:android= "http://schemas.android.com/apk/res/android" > <rotate android:interpolator= "@android:anim/accelerate_decelerate_interpolator" android:fromDegrees= "0" android:toDegrees= "+360" android:duration= "3000" /> <!-- rotate 旋转动画效果 属性:interpolator 指定一个动画的插入器,用来控制动画的速度变化 fromDegrees 属性为动画起始时物件的角度 toDegrees 属性为动画结束时物件旋转的角度,+代表顺时针 duration 属性为动画持续时间,以毫秒为单位 --> </ set > 以上这些就是android中常用的xml,至于其他的自行查阅喽~ 本文转自zhf651555765 51CTO博客,原文链接:http://blog.51cto.com/smallwoniu/1248892,如需转载请自行联系原作者

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

Android开发学习笔记:圆角的Button

在res目录下的drawable-mdpi建立xml文件shape.xml,如下图所示: shape.xml <?xmlversion="1.0"encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--填充的颜色--> <solidandroid:color="#FFFFFF"/> <!--设置按钮的四个角为弧形--> <!--android:radius弧形的半径--> <cornersandroid:radius="5dip"/> <!--padding:Button里面的文字与Button边界的间隔--> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> main.xml 在android:background="@drawable/shape"就使用了shape.xml资源 <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/roundButton" android:text="圆角按钮" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape" /> </LinearLayout> strings.xml <?xmlversion="1.0"encoding="utf-8"?> <resources> <stringname="hello">HelloWorld,RoundButtonDemoActivity!</string> <stringname="app_name">RoundButtonDemo</string> </resources> RoundButtonDemoActivity.java packagecom.android.RoundButtonDemo.activity; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.Toast; publicclassRoundButtonDemoActivityextendsActivity{ ButtonroundButton; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); roundButton=(Button)findViewById(R.id.roundButton); //使用匿名类注册Button事件 roundButton.setOnClickListener(newOnClickListener() { publicvoidonClick(Viewv) { Toast.makeText(RoundButtonDemoActivity.this,"你点击了圆角按钮",Toast.LENGTH_LONG).show(); } }); } } 效果图: 本文转自 lingdududu 51CTO博客,原文链接:http://blog.51cto.com/liangruijun/630051

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

Android开发学习笔记:浅谈Content Provider

一.Content Provider的概念介绍 Content Providers是所有应用程序之间数据存储和检索的桥梁,它使得各个应用程序之间实现数据共享。是应用程序间共享数据的唯一途径。Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。其中包括添加,删除,查询,更新等操作。 在Content Provider使用过程中,还需要借用ContentResolver对象间接来操作ContentProvider来获取数据。ContentResolver通过应用程序的getContentResolver()方法获得。一般情况下,ContentResolver是单实例的,但是可以有多个ContentResolver在不用的应用程序和不同的进程之间和ContentResolver交互。 二.Content Provider的简介 1.Content Provider的常用方法 //查询 query(Uri,String[],String,String[],String); //插入 insert(Uri,ContentValues); //更新 update(Uri,ContentValues,String,String[]); //删除 delete(Uri,String,String[]); //获得MIME数据类型 getType(Uri); 2.数据模型 Content Provider 将其存储的数据以数据表的形式提供给访问者,在数据表中每一行为一条记录,每一列为具有特定类型和意义的数据。每一条数据记录都包括一个 "_ID" 数值字段,改字段唯一标识一条数据。 _ID NUMBER NUMBER_KEY LABEL NAME TYPE 13 (425) 555 6677 425 555 6677 Kirklandoffice Bully Pulpit TYPE_WORK 44 (212) 555-1234 212 555 1234 NY apartment Alan Vain TYPE_HOME 45 (212) 555-6657 212 555 6657 Downtown office Alan Vain TYPE_MOBILE 53 201.555.4433 201 555 4433 Love Nest Rex Cars TYPE_HOME 3.URI URI,每一个Content Provider 都对外提供一个能够唯一标识自己数据集(data set)的URI, 如果一个Content Provider管理多个数据集,其将会为每个数据集分配一个独立的URI。Content Provider就是通过URI对象来共享其数据的。 URI的格式图如下: 各个部分的组成: A:标准前缀,是固定的,"content://"是用来标识数据是由Content Provider管理的 schema。 B:URI的标识,它定义了是哪个Content Provider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。这个标识在 元素的 authorities属性中说明:一般是定义该ContentProvider的包.类的名称 C:需要访问的数据字段名称。 D:如果URI中包含表示需要获取的记录的_ID;如何有D部分,则就返回该_ID对应的数据,否则表示返回整张表的数据 三.Content Provider实例 Anroid系统自带的Content Provider对象 获得系统联系人信息(姓名和手机号码)的例子 MainActivity.java packagecom.lingdududu.provide; importandroid.app.Activity; importandroid.os.Bundle; importandroid.provider.ContactsContract; importandroid.provider.ContactsContract.PhoneLookup; importandroid.database.Cursor; importandroid.graphics.Color; importandroid.widget.TextView; importandroid.content.ContentResolver; publicclassMainActivityextendsActivity{ publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); TextViewtv=newTextView(this); Stringstring=getQueryData(); //设置文本的颜色 tv.setTextColor(Color.BLUE); //设置TextView显示的内容 tv.setText(string); //设置文本字体的大小 tv.setTextSize(30.0f); //显示到屏幕 setContentView(tv); } publicStringgetQueryData(){ Stringstring=""; //得到ContentResolver对象 ContentResolvercr=getContentResolver(); //取得电话本中开始一项的光标 Cursorcursor=cr.query(ContactsContract.Contacts.CONTENT_URI,null, null,null,null); //向下移动光标 while(cursor.moveToNext()){ //取得联系人名字 intnameFieldColumnIndex=cursor .getColumnIndex(PhoneLookup.DISPLAY_NAME); Stringcontact=cursor.getString(nameFieldColumnIndex); //取得电话号码 StringContactId=cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID)); Cursorphone=cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=" +ContactId,null,null); while(phone.moveToNext()){ StringPhoneNumber=phone .getString(phone .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); string+=(contact+":"+PhoneNumber+"\n"); } } cursor.close(); returnstring; } } 注意:记得在AndroidManifest.xml加上17行的权限声明 <?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.lingdududu.provide" android:versionCode="1" android:versionName="1.0"> <uses-sdkandroid:minSdkVersion="10"/> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> <uses-permissionandroid:name="android.permission.READ_CONTACTS"/> </manifest> 通讯录中联系人的信息: 效果图: 本文转自 lingdududu 51CTO博客,原文链接: http://blog.51cto.com/liangruijun/667264

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

Android开发者指南(2) —— aapt

正文 使用aapt aapt是标准的Android辅助打包工具,位于SDK的tools/文件夹下。该工具允许查看、创建或更新Zip兼容格式(zip,jar,apk)的文档,并且能将资源编译到二进制格式的包中。 通常不需要直接使用aapt工具,IDE插件和编译脚本能利用它打包apk文件来合成应用程序。 详细的用法可以打开命令行终端,到tools文件夹下运行如下命令: Linux或Mac OS X: ./aapt Windows: aapt.exe 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582290,如需转载请自行联系原作者

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

一次Hadoop开发思路分享

困扰了自己1周的一个问题终于得到解决了,感谢给我帮助的同学,同时记录下来分享给大家. 问题简化描述: HDFS存在这样格式的文件:用户ID主题ID用户对此主题的偏好分数score。 现在要求实现对给定的几个主题T1,T2,T3,...TN,每个主题要求筛选出指定数量的用户ID是M1,M2,M3,...MX。 希望尽可能根据score来选出偏好的用户ID,并且主题之间的用户ID不可以重复。 另外HDFS上distinct的用户ID数量是大于等于M1+M2+M3+...+MX的。 思路分析: 问题有几个关键点,第一,不重复,第二,数量上要满足,第三,偏好分数score。 如何保证,主题之间的用户不重复呢? 其实就是完成,一个用户只能属于一个主题的过程,当然,我们可以很简单的对一个用户下的所有偏好分数进行排序,取出最偏好的主题。 虽然这样避免了重复的问题,可是问题来了,如果偏好主题T1要求的数量是100W,而仅仅只有90W的用户ID对T1最偏好,这该如何补数呢?又如何通过程序来自动化的实现这个过程呢?越想越复杂! 这个问题好像有点类似于高考填自愿的问题,我们每一个人会填写几个志愿,但是我们终究只会被一个院校录取,这是怎么做到的呢?是否可以从中借鉴呢? 首先,我们根据HDFS的内容,写一个MapReduce完成一次计算,形成下面的用户志愿HDFS内容: 用户ID 主题ID-A:score1;主题ID-B:score2;... 很简单,希望得到一个用户ID下面按照score desc排序的主题列表,上面一行其实就是说: 用户ID的第一志愿是主题A,第二志愿是主题B...。 ------------------------------------------ 接下来,形成下面的一个列表list信息: 主题A count-A 主题B count-B 主题C count-C ... 按照主题需要的用户ID的数量进行ASC排序。 ------------------------------------------ 下面,我们就来看如何进行主题选择用户的过程: 我们首先选择对数量要求最少的主题A完成下面的MapReduce计算: 这样,我们就完成了主题A的用户筛选问题。 接下来,我们取出list中数量要求比A多一点的主题B,那么它怎么取用户呢? 很简单,我们只需要在MAP处理阶段,传递主题A生成的结果HDFS路径(路径下面的文件内容当然是主题A的用户)用于reduce阶段取用户时进行过滤。 那么,主题C又如何取用户呢? 类似的,只需要给MAP多传递主题A,主题B已经占用的用户信息用于过滤,其他处理操作不变! 其实,我们可以发现,上面的MapReduce其实可以是一个通用的程序,类似于COMMAND: hadoop jar XXX.jar 主题ID 数量 [input1,input2,input3,...] 用户志愿HDFS路径 输出路径 其中input1,input2,input3,...是可选的,其实就是用于用户过滤的。 最后,我们可以写一个Shell脚本,根据list的内容来进行重复调用上面的COMMAND,通过传递不同的参数信息达到目的,这样我们就可以自动化实现上面的要求了! 本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1689902,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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部分的功能。

用户登录
用户注册