1. 如何搭建android开发环境,怎么判断android的SDK是否安装成功
搭建android开发环境需要在网站上下载android-sdk的最新版本, 然后直接解压到磁盘目录下面。完成下载安装工作后, 打开Eclipse软件, 会出现一个需要安装android-sdk的提示。点击安装。然后可以看到正在进行download pageage操作。最后所选择的Android api下载完成后, 在ide中可以新建Android的项目路, 然后进行Android开发之旅了。
Eclipse上出现AVD一个小机器人的图标,或者新建项目的时候有Android 项就表示ADT安装成功。点这个小图标能新建模拟器就表示SDK下载完成,在CMD输入adb有信息显示就表示SDK环境变量配置成功。
2. android 如何制作自己的sdk
其实制作sdk很简单,就是把你编译好的java生成的class打成jar包,如果要使用activity的话,就是要在嵌入sdk的项目中的androidManifest.xml中注册jar包中的activity就可以正常跳转了。
3. 如何使内测应用集成蒲公英 Android SDK,实现自定义反馈信息功能
您好,移动开发的一个重要难题,就是APP应用在开发过程中,必须使用大量不同的手机进行真实环境的测试,才有可能进入商用。由于手机操作系统的不同,以及操作系统版本之间的差异,使得真机测试这个过程尤其复杂,涉及终端、人员、工具、时间、管理等方面的问题,Android系统的设备因操作系统多样性和终端类型的庞杂,问题尤为复杂。恰恰就是这样,testin就想到了,做一个云的终端测试应用的服务!Testin为移动应用开发者提供云端真机自动测试服务,该服务基于一种软硬件相结合的技术,帮助开发者解决了移动应用在不同平台、不同版本系统中的测试问题。开发者可以免费使用云端1000多款真机测试自己为Android开发的应用,通过测试的应用可以直接发布到应用商店。此外,开发者和广告商还能使用Testin监控平台,监测全球不同地区用户的真机体验和广告展现质量。
4. Android 新浪微博SDK的使用
邮件给你了,很简单的。邮件里面有demo和开发文档
5. Android 中如何集成vk官方平台分享
就是将一些文本分享给你的微信好友或者微信的朋友圈。
由于之前有过做新浪微博、QQ、人人网第三方登录的经验,所以我很自然的就去微信的开发者平台去下SDK,注册我的应用。麻烦的事情就来了。
微信的官方demo想运行起来真心难啊,而且官网上面居然资料很少。坑。。。。。。。。
运行微信的官方demo
下面我来说一下运行微信的官方demo:
首先去开发者平台的资源中心-->点击资源下载-->选择android资源下载-->下载范例代码(HelloWeixin@Android)。
1、将该项目导入eclipse。
2、导入的目录结构
3、现在运行肯定不行的。点击Windows-->Preference
将demo中自带的debug.keystore的路径写入到Custom debug deystore.
4、现在就可以运行了。
我真是服了微信了,做的简直不人性化。用官方的集成简直就是要命。
为什么要设置Custom debug deystore??
因为微信有自身的限制。它需要你在注册该应用的时候,填写应用签名,这个签名就是你要最终打包发布使用的签名的加密MD5值。具体就是你先用这个签名打个包,然后在你的手机里面运行,然后在微信的官网下一个获取签名MD5值的工具(开发者平台-->资源中心-->资源下载-->android资源下载-->签名生成工具)。
官方的demo如果不设置这个Custom debug deystore,默认是使用eclipse提供的签名,这个签名和demo的本身的签名肯定不一致的。所以我们分享的时候是不成功的。
再吐槽一下,微信的接口写的真是奇葩,我分享不成功还返回ture,而且什么提示都没有,简直垃圾。
ShareSDK集成步骤
经历了这些,我以为应该可以自己集成了吧。可悲的是我整了两天都没成功分享。我确定了APPID、签名、应用包名、应用名称与注册的信息一模一样,TMD就是分享失败。最后没办法,我只能放弃了官方的SDK,使用了ShareSDK集成。
不得不说真心强大。微信、易信、微博都可以集成。官网地址:http://mob.com/
点开选择SDK下载-->ShareSDK社会化分享-->ShareSDK For Android.
强大的一笔。刚看见这个的时候不知从哪边下手。
然后参考http://wiki.mob.com/Android_ShareSDK%E5%AE%8C%E6%95%B4%E7%9A%84%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3
这个集成文档,基本就可以搞定了。大致说一下步骤:
首先必须要在ShareSDK里面注册你的应用,非常简单的,只填写基本信息就行,一路next获取Appkey、App Secret。
1、下载SDK页面选择"打包下载SDK",这个下载的里面包含依赖的项目
将下载的文件解压得到:
http://blog.csdn.net/dalancon/article/details/39322159
6. Android SDK 开发新浪微博客户端
Log
7. 怎么申请sina android sharesdk的key
由于第一次使用,所以需要先进行新浪授权,授权界面
下面开始介绍如何使用ShareSDK实现微博的分享功能(其他平台的类似)
shareSDK传送门
在使用shareSDK之前,我们需要先到新浪微博的开放平台进行注册,获得appkey以及其他的信息
新浪微博开放平台传送门
下面图片中划掉的部分是要重点关注的
特别需要注意的是,下面的回调网址必须填写,而且在代码中有涉及,使用默认的即可
至此,开发之前的准备工作已经做好了,下面还是贴代码
首先看一下布局文件代码,很简单,只有一个按钮
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
02.xmlns:tools="http://schemas.android.com/tools"
03.android:layout_width="match_parent"
04.android:layout_height="match_parent"
05.android:gravity="center_vertical" >
06.
07.<Button
08.android:onClick="click"
09.android:layout_width="match_parent"
10.android:layout_height="wrap_content"
11.android:text="一键快捷分享" />
12.
13.
MainActivity.java
package com.heli17.weiboonekeylogin;
002.
003.import java.io.File;
004.import java.io.FileOutputStream;
005.import java.util.HashMap;
006.
007.import android.app.Activity;
008.import android.app.Notification;
009.import android.app.NotificationManager;
010.import android.app.PendingIntent;
011.import android.content.Context;
012.import android.content.Intent;
013.import android.graphics.Bitmap;
014.import android.graphics.Bitmap.CompressFormat;
015.import android.graphics.BitmapFactory;
016.import android.os.Bundle;
017.import android.os.Environment;
018.import android.os.Handler.Callback;
019.import android.os.Message;
020.import android.view.View;
021.import android.widget.Toast;
022.import cn.sharesdk.framework.Platform;
023.import cn.sharesdk.framework.PlatformActionListener;
024.import cn.sharesdk.framework.ShareSDK;
025.import cn.sharesdk.framework.utils.UIHandler;
026.import cn.sharesdk.onekeyshare.OnekeyShare;
027.
028.public class MainActivity extends Activity implements PlatformActionListener,
029.Callback {
030.
031.private static final int MSG_TOAST = 1;
032.private static final int MSG_ACTION_CCALLBACK = 2;
033.private static final int MSG_CANCEL_NOTIFY = 3;
034.
035.// sdcard中的图片名称
036.private static final String FILE_NAME = "/share_pic.jpg";
037.public static String TEST_IMAGE;
038.
039.@Override
040.public boolean handleMessage(Message msg) {
041.switch (msg.what) {
042.case MSG_TOAST: {
043.String text = String.valueOf(msg.obj);
044.Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
045.}
046.break;
047.case MSG_ACTION_CCALLBACK: {
048.switch (msg.arg1) {
049.case 1: // 成功后发送Notification
050.showNotification(2000, "分享完成");
051.break;
052.case 2: // 失败后发送Notification
053.showNotification(2000, "分享失败");
054.break;
055.case 3: // 取消
056.showNotification(2000, "取消分享");
057.break;
058.}
059.}
060.break;
061.case MSG_CANCEL_NOTIFY:
062.NotificationManager nm = (NotificationManager) msg.obj;
063.if (nm != null) {
064.nm.cancel(msg.arg1);
065.}
066.break;
067.}
068.return false;
069.}
070.
071.@Override
072.protected void onCreate(Bundle savedInstanceState) {
073.super.onCreate(savedInstanceState);
074.setContentView(R.layout.activity_main);
075.// 初始化ShareSDK
076.ShareSDK.initSDK(this);
077.// 初始化图片路径
078.new Thread() {
079.public void run() {
080.initImagePath();
081.}
082.}.start();
083.}
084.
085.//一键分享的点击事件
086.public void click(View v) {
087.//实例化一个OnekeyShare对象
088.OnekeyShare oks = new OnekeyShare();
089.//设置Notification的显示图标和显示文字
090.oks.setNotification(R.drawable.ic_launcher, "ShareSDK demo");
091.//设置短信地址或者是邮箱地址,如果没有可以不设置
092.oks.setAddress("12345678901");
093.//分享内容的标题
094.oks.setTitle("分享内容的标题");
095.//标题对应的网址,如果没有可以不设置
096.oks.setTitleUrl("http://www.17heli.com");
097.//设置分享的文本内容
098.oks.setText("分享的文本内容");
099.//设置分享照片的本地路径,如果没有可以不设置
100.oks.setImagePath(MainActivity.TEST_IMAGE);
101.//设置分享照片的url地址,如果没有可以不设置
102.oks.setImageUrl("http://img.appgo.cn/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");
103.//微信和易信的分享的网络连接,如果没有可以不设置
104.oks.setUrl("http://sharesdk.cn");
105.//人人平台特有的评论字段,如果没有可以不设置
106.oks.setComment("comment");
107.//程序的名称或者是站点名称
108.oks.setSite("site");
109.//程序的名称或者是站点名称的链接地址
110.oks.setSiteUrl("http://www.baidu.com");
111.//设置纬度
112.oks.setLatitude(23.122619f);
113.//设置精度
114.oks.setLongitude(113.372338f);
115.//设置是否是直接分享
116.oks.setSilent(false);
117.//显示
118.oks.show(MainActivity.this);
119.}
120.
121.private void initImagePath() {
122.try {
123.if (Environment.MEDIA_MOUNTED.equals(Environment
124..getExternalStorageState())
125.&& Environment.getExternalStorageDirectory().exists()) {
126.TEST_IMAGE = Environment.getExternalStorageDirectory()
127..getAbsolutePath() + FILE_NAME;
128.} else {
129.TEST_IMAGE = getApplication().getFilesDir().getAbsolutePath()
130.+ FILE_NAME;
131.}
132.// 创建图片文件夹
133.File file = new File(TEST_IMAGE);
134.if (!file.exists()) {
135.file.createNewFile();
136.Bitmap pic = BitmapFactory.decodeResource(getResources(),
137.R.drawable.pic);
138.FileOutputStream fos = new FileOutputStream(file);
139.pic.compress(CompressFormat.JPEG, 100, fos);
140.fos.flush();
141.fos.close();
142.}
143.} catch (Throwable t) {
144.t.printStackTrace();
145.TEST_IMAGE = null;
146.}
147.}
148.
149.@Override
150.protected void onDestroy() {
151.super.onDestroy();
152.// 在Activity中停止ShareSDK
153.ShareSDK.stopSDK(this);
154.}
155.
8. 现在的android版SDK中,进行微博分享必须要通过微博客户端吗
本文介绍了如何在Android程序中使用新浪微博提供的AndroidSDK
微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。
首先我们需要在新浪微博开放平台上进行注册,之后需要创建一个新的应用,并且需要记下应用的APP key,App Secret Key以及设置应用的回调页以便我们在程序中进行使用。此外,还需要在应用的高级信息里添加测试用户的uid,切记切记,否则会出现登陆不成功等怪现象。
接着我们下载微博提供的Android上的SDK,下载地址在这里http。//open。weibo。com/wiki/SDK,选择AndroidSDK进行下载即可。
使用方法:
首先将下载的sdk进行解压,并将其导入到eclipse中,接着在你需要使用sdk的android工程中点击右键,属性,设置library属性,选中刚才导入的weibosdk即可。如图所示
然后在你的工程的Manifest文件中,加入以下权限:
这样我们就能使用weibosdk了
建立工程以后如何在代码中使用weiboAPI呢,下面就由我来为大家介绍使用方法:
首先在你需要使用微博的Activity中加入以下代码:
Weibo weibo = Weibo.getInstance();
weibo.setupConsumerConfig(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);
weibo.setRedirectUrl("Your URLhere");
weibo.authorize(this,
listener);
注意代码中的Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET即是文章开头介绍的在微博上创建的应用里的两个key,setRedirectUrl中的内容即是在应用中设置的回调页。
Listener则是在进行登陆授权后对执行结果进行处理的Litener,代码如下
public class AuthDialogListener implements WeiboDialogListener {
private Activity context;
private String content;
private String file;
private float lat;
private float lon;
private static boolean isOver=true;
public AuthDialogListener(Activity context,String content,String file,float lat,float lon){
this.context= context;
this.content=content;
this.file=file;
this.lat=lat;
this.lon=lon;
}
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
String oauth_verifier = values.getString("oauth_verifier");
AccessToken accessToken = new AccessToken(token, Constants.CONSUMER_SECRET);
accessToken.setExpiresIn(expires_in);
accessToken.setVerifier(oauth_verifier);
Weibo.getInstance().setAccessToken(accessToken);
try {
if (isOver) {
isOver=false;
share2weibo(this.content,null,listener,lat,lon);
}
} catch (WeiboException e) {
e.printStackTrace();
}
}
@Override
public void onError(DialogError e) {
Toast.makeText(context.getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(context.getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(context.getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
private void share2weibo(String content,String file,RequestListener listener,float lat , float lon) throws WeiboException {
Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
if (file!=null&&!file.equalsIgnoreCase("")) {
params.add("pic", file);
url = Weibo.SERVER + "statuses/upload.json";
}
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context, url, params,Utility.HTTPMETHOD_POST,listener);
}
RequestListener listener= new RequestListener() {
@Override
public void onIOException(IOException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onError(WeiboException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onComplete(String response) {
isOver=true;
Toast.makeText(context, "Success!", Toast.LENGTH_LONG).show();
}
};
}
需要完成WeiboDialogListener接口中的方法,分别是onComplete,OnError,
OnCancel,OnWeiboException。其中Oncomplete是在微博登陆授权成功后会执行的方法,在这个方法中,你可以调用你想要的功能如发表微博,转发,评论等。使用的代码可参看以下代码:
Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context,url,params,Utility.HTTPMETHOD_POST,listener);
其中params是调用weibo api中需要的具体参数,可根据需要进行添加
AsyncWeiboRunner 是用来执行具体请求的类,根据你设定的参数发起请求。注意这里又有一个listerner,而这个listener是对发起请求后的结果进行处理的回调类,
RequestListener listener= new RequestListener()
需要复写的方法有OnIOException,onError,onComplete,这样可以清楚地对各种情况进行处理。
这样在程序中就可以使用新浪微博 android sdk了。