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()獲取公私鑰就可以了