androidjavarsa
A. 学java好还是android好
这位小友,我觉得你很有意思。java好还是android好呢?这是一句话就能回答得了的吗。
如果非要用一句话回答,我会说:语言碰派判不重要,重要的是编程思想+经验。
--------------------------------------------------------------------------------------------
作为一个由java转向android的程序员,我对两种语言的联系很有感触。
先说java吧,如大众所知的,它简单、易学、可读性强、跨平台,如今我在java上的造诣已快赶上大牛,大有 给我一个API,我能复制JDK -- (说大了,有点虚...)
而android,作为移动时代的主力军,从02年问世,到08年被Google收购笑改,10年在中国发扬光大,目前已占有中国手机市场的74%市场份额来说,的确是非常具有潜力的行业。也正是出于这个原因,我选择了android开发。
但是android开发中,你会发羡键现android的开发基本上都是在用java 。甚至连编辑器都一样是eclipse,只要加一个ADT而已。如果你是一个新人,我建议先学Java,有足够基础,再学android会好些。不要贪图快速,直接从android下手,那样一定会又要学java又要学android,会非常吃力。
B. android开发支付宝付款实时通知是怎么实现的
到支付宝官网,下载支付宝集成开发包,看懂里面的关键代码
由于android设备一般用的都是无线支付,所有我们申请的就是支付宝无线快捷支付接口。
如果链接失效,你可以到支付宝官网商家服务模块中找到 快捷支付(无线)这个服务。
下载集成开发包,解压发现里面有客户端的demo即说明文档,在客户端的demo中找到Android_SDK,这个就是你要用到的支付宝接口及demo。
把demo(alipay_sdk_demo)和(alipay_lib)导入到你的eclipse里面,然后你可以试着运行一遍demo(alipay_sdk_demo),只要把这个demo搞懂了,你就会调用这个支付宝接口了。至于到时候如何集成到你的项目里面,文档上说明很详细,按着文档上一步一步来就行了。我的建议是先把这个demo弄懂再设计你的项目,看看调用接口时需要哪些数据,这样也有利于你一开始设计数据。
下面来简单的介绍下接口demo里面的结构。
你打开项目会发现里面有5个类。
kagecom.alipay.android.msp.demo;
importjava.io.IOException;
........
........
importcom.alipay.android.app.sdk.AliPay;
,
OnClickListener{
publicstaticfinalStringTAG="alipay-sdk";
privatestaticfinalintRQF_PAY=1;
privatestaticfinalintRQF_LOGIN=2;
privateEditTextmUserId;
privateButtonmLogon;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.external_partner);
initProcts();
initListView();
}
/*
*(non-Javadoc)
*
*@seeandroid.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
(Menumenu){
menu.add(Menu.NONE,Menu.FIRST,1,"快速登录");
returntrue;
}
/*
*(non-Javadoc)
*
*@seeandroid.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST:
setContentView(R.layout.trustlogin);
mUserId=(EditText)findViewById(R.id.user_id);
mLogon=(Button)findViewById(R.id.get_token);
mLogon.setOnClickListener(this);
break;
}
returnfalse;
}
privatevoidinitProcts(){
if(sProcts!=null)
return;
XmlResourceParserparser=getResources().getXml(R.xml.procts);
ArrayList<Proct>procts=newArrayList<Proct>();
Proctproct=null;
try{
inteventType=parser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
if(eventType==XmlPullParser.START_TAG
&&parser.getName().equalsIgnoreCase("proct")){
proct=newProct();
proct.subject=parser.getAttributeValue(0);
proct.body=parser.getAttributeValue(1);
proct.price=parser.getAttributeValue(2);
procts.add(proct);
}
eventType=parser.next();
}
sProcts=newProct[procts.size()];
procts.toArray(sProcts);
}catch(XmlPullParserExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
//listview点击事件,里面调用的支付宝接口
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
try{
Log.i("ExternalPartner","onItemClick");
Stringinfo=getNewOrderInfo(position);//这个是订单信息
Stringsign=Rsa.sign(info,Keys.PRIVATE);//签名加密订单信息什么的
sign=URLEncoder.encode(sign);
info+="&sign=""+sign+""&"+getSignType();
Log.i("ExternalPartner","startpay");
//startthepay.
Log.i(TAG,"info="+info);
finalStringorderInfo=info;
newThread(){
publicvoidrun(){
AliPayalipay=newAliPay(ExternalPartner.this,mHandler);//这个应该就是支付宝接口了,哈哈,支付宝现在把很多功能都封装了,所以省了很多代码
//设置为沙箱模式,不设置默认为线上环境
//alipay.setSandBox(true);
Stringresult=alipay.pay(orderInfo);//这个是返回的结果,你到时候可以根据这个结果加以操作你想操作的,然后基本就完了,其他的你想附加的功能你看着写吧,现在Key.java配置好就能调用快捷支付了
//后面的这些代码可以改成你自己的,也可以在它们的基础上改
Log.i(TAG,"result="+result);
Messagemsg=newMessage();
msg.what=RQF_PAY;
msg.obj=result;
mHandler.sendMessage(msg);
}
}.start();
}catch(Exceptionex){
ex.printStackTrace();
Toast.makeText(ExternalPartner.this,R.string.remote_call_failed,
Toast.LENGTH_SHORT).show();
}
}
//获得订单信息的方法
privateStringgetNewOrderInfo(intposition){
StringBuildersb=newStringBuilder();
sb.append("partner="");
sb.append(Keys.DEFAULT_PARTNER);//合作身份者id
sb.append(""&out_trade_no="");
sb.append(getOutTradeNo());//这个是订单编号
sb.append(""&subject="");
sb.append(sProcts[position].subject);//这个应该是商品名称
sb.append(""&body="");
sb.append(sProcts[position].body);//这个应该是商品的描述,具体你可以参考demo
sb.append(""&total_fee="");
sb.append(sProcts[position].price.replace("一口价:",""));//这个是要付款的金额,到时候你调用的时候改下就行了
sb.append(""¬ify_url="");
//网址需要做URL编码
sb.append(URLEncoder.encode("http://notify.java.jpxx.org/index.jsp"));//服务器异步通知页面,完成交易后通知商家服务器的页面,以post的形式将商品订单信息发送到指定页面,手机客户端不需要可以先放在这不管。是不是,这个类很简单看懂吧,就一listview。调用支付宝接口的方法就在onItemClick()方法里面,如果你是一个按钮的话换成按钮点击事件就行了,主要的细节我注释已写。现在你要想的是,需要哪些数据,提供给onItemClick()方法里面的Stringinfo。demo里面的数据是getNewOrderInfo(intposition)这个方法提供的,你可以自己提供或者在上面修改下。
现在,你已经知道代码是如何调用支付宝接口了。接下来,是如何把这些集成到你的项目中去。
C. 北大青鸟java培训:学习安卓开发需要懂得什么
学习安卓开发需要懂得什么?很多人想学安卓,但是应该掌握哪些内容才能具有开发资质呢?宁夏宁夏电脑培训http://www.kmbdqn.cn/给大家分析介绍:初级1.拥有娴熟的Java基础,理解设计模式,比如OOP语言的工厂模式要懂得。
2..掌握AndroidUI控件、AndroidJava层API相关使用。
迈向中级,最好再次掌握相关的Java技术,掌握Javaconcurrent库、nio库,精通xml、json解析,做过socketc/s端的程序。
中级1.熟练掌握NDKJNI方式的开发,对Androidframework十分了解。
2.移植一些开源项目,比如FFmpeg、Mplayer到Android上运行。
迈向高级,熟悉android开源代码的结构,中间件下层的库,比如webkit、opencore、opengl。
三、高级1.熟练的Linux驱动开发,精通Linux内核结构。
2.掌握Android移植,比如常见的TIOMAP、QualcommMSM的硬件移植迈向顶级,发现Android系统中的0day漏洞,可以轻松的找出Root系统的10种方法,帮助Google改进Android操作系统。
学习安卓开发需要懂得什么?对于比较懂行的人都知道,安卓主要使用Java作为编程语言的,所以说学好Java才是安卓入门开发必备的技能。
你之前不懂得可以理解,现在北大青鸟嘉荟校区的老师把问题帮你解决了,可一定要记牢哦。
D. iOS RSA加密生成公钥私钥
该命令生成一个模长 2048 位,名字为 rsa_private_key.pem 、 PKCS1 格式的 RSA 私钥文件.
genrsa :指定生成算法使用 RSA
-out :后面参数是生成的私钥的文件名
2048 :生成私钥的模长,单位字节(bits)
根据生成的私钥 rsa_private_key.pem 文件,生成公钥 rsa_public_key.pem 文件
生成名字为 rsa_pkcs8_private_key.pem 的私钥文件
Java 和 Android 用到的密钥:
公钥: rsa_public_key.pem
私钥: rsa_pkcs8_private_key.pem
终端会提示输入国家、省市、所在地、组织、组织单位、常用名称、邮箱地址等信息,按要求填写(可以随便填写), 输入完对应信息后会提示输入一个密码 :
最终会生成 rsacert.csr 文件
用最开始生成的私钥 rsa_private_key.pem 和 rsacert.csr 证书请求文件生成一个数字证书 rsacert.crt
使用 x509 工具自建CA。由于 x509 无法建立证书请求文件,所以只能使用 openssl req 来生成请求文件,然后使用 x509 来自签署, 也可以用来签署他人的证书请求,即为他人颁发证书。
知识点 :
终端会提示设置密码,该密码是 .p12 私钥的密码(用 private_key.p12 私钥解密时, 要用到该密码, 需要记录下 ), 会提示再次输入检验刚才输入的密码.
E. android 怎么读取rsa公钥
这个很简单 如果密码手工输入 理论上完全可以 但是密悔橡钥有时候二进制有时候会上百位 转化到其他进制要几十位 很容易出错 而且私钥 公钥是从一个推出另一个的 手工输入怎么保证你输入的公钥私钥模宏就可以一定可以配成一对keyPair 而且公钥私钥 必须还要从用p q来算 等等如果手工输入太麻烦了 为何我们不把这些繁琐的 容易出错的东西 封装起来来简化我们的开发呢 所以我们有了各种各样的开发包 各种各样的架构 各种各样的库 java中旦前册 KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); KeyPair key = keyGen.generateKeyPair(); cipher.init(Cipher.ENCRYPT_MODE, key.getPublic()); cipher.init(Cipher.DECRYPT_MODE, key.getPrivate()); 这是我以前写的代码的片段 不是连续的 大体上就是先得到一个rsa的密钥对 然后调用getpublic() getprivatekey()获取公私钥就可以了