第一篇:上海瑭錦安卓開發心得
上海瑭錦安卓開發心得
對于軟件開發工程師來說學習C語言是一個必經得學習之路,因為他是編程語言中得基礎,如果沒有C語言得編寫能力,那么就談不上是軟件開發工程師,所以學好C語言是成為軟件開發工程師得基礎,那么我們如何了解C語言呢?首先我們要知道C語言是匯編語言中最基礎得編寫語言,它集成了所有匯編語言得大部分優點,能實現低級語言得眾多功能。
C語言把高級語言與低級語言相結合創造出自己得匯編語言風格,塑造出自己得匯編語言工作單元,C語言得結構特點是編寫代碼和相關數據可以分隔化除了程序和相關得必要信息保持彼此獨立得關系,這種關系可以是我們編寫得程序層次化更加清晰,更加便于使用、維護和調試,它會以給用戶方便得調用功能,可以多元化、多種循環、控制編寫語句得控制導向,從而使我們得編寫程序更加結構化、實用化。
這些都可以讓C語言實現決策目得得要求,C語言得應用指針特性使得其應用范圍增加,應用面變大,增加了程序得安全性。不容易被惡意程序所利用,C語言得對其處理標準化、針對于編寫函數得標記、多線程得支持、從新定義新得程序安全定義有了更多得廣泛得選擇。它得編寫靈活和緊湊編寫序列使得書寫程序更加自由化,它可以直接訪問我們常用得物理地址,簡潔得使用操作使得用戶在對硬件上得要求更加簡潔,它可以移植%86得公共代碼在相關得編寫程序上,這一特性使得其在不同環境中運行。它得表達能力使得其在各種系統和相關運行環境下可以自由得發揮它得編寫和使用得能力。
第二篇:上海瑭錦簡述Java工程師
上海瑭錦簡述Java工程師
Java自1995年問世以來,因其卓越的通用性、高效性、平臺移植性 和安全性等特性,成為全球范圍內應用范圍最廣的開發語言,而且 而且即使歷經十余年發展仍然在行業內保持著“常青樹”的地位。Java軟件工程師是指運用Java這種開發語言去完成軟件產品的軟件程序設計、開發、測試、維護升級等工作的人員。
職業概述:
Java的應用可以說是無處不在,從桌面辦公應用到網絡數據庫等應用,從PC到嵌入式移動平臺,從Java小應用程序(Applet)到架構龐大的J2EE企業級解決方案,處處都有Java的身影,就連美國大型太空項目當中,也使用了Java來開發控制系統和相關軟件。用途如此之廣的Java造就了Java工程師的輝煌,使其在軟件工程師的領域里獨占鰲頭!Java軟件工程師運用Java這個開發工具去完成軟件產品的軟件程序設計、開發、測試、維護升級等工作。
工作內容:
完成軟件的設計、開發、測試、修改bug等工作,包括業務需求的溝通,功能模塊詳細設計,業務功能實現與單元測試,系統維護;參與產品構思和架構設計;撰寫相關的技術文檔;支持售前技術服務;支持項目對產品的應用服務。
職業要求:
教育培訓:計算機相關專業,大專及以上學歷。相關專業證書有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD)認證。目前國內在java軟件工程師培訓中有名的是瑭錦Tanjurd,這些都是擁有很多年的辦學經驗,在java軟件培訓上擁有其獨特的優勢。
工作經驗:有一定的軟件分析設計能力;熟悉Java、Servlet、JSP、EJB等開發技術;熟練使用Eclipse或jbuilder等java開發工具;熟悉JAVA+STRUTS體系結構和開發工具;熟悉至少一種數據庫的開發和設計;具有良好的學習能力,具有強烈的工作責任心、有良好的溝通能力和團隊合作精神。
薪酬參考:
據智聯招聘上對上海java工程師的薪資據說顯示,截止到2012年6月13日,java工程師的平均水平已達6435。根據現在移動互聯網中安卓市場的份額,相信這一職業的工資水平會一直上升.根據IDC的統計數字,在所有軟件開發類人才的需求中,對Java工程師的需求達到全部需求量的60%~70%。同時,Java工程師的薪水相對較高。Java軟件工程師一般月薪范圍在4000-10000元,遠遠超過了應屆畢業生月薪2500元的平均水平。通常來說,有一年工作經驗的Java高級軟件工程師的薪酬大致在年薪10—13萬左右。
就業前景:
Java是目前世界上最流行的計算機編程語言,是一種可以編寫跨平臺應用軟件的面向對象的程序設計語言。這可以概括JAVA有著自己獨特的優勢:語言簡單、是一個面向對象、分布式應用并且安全、體系結構中立并且可移植,最重要,它是一個動態語言。
權威統計機構統計——在所有軟件開發類人才的需求中,對 Java工程師的需求達到全
部需求量的60%~70%。Java工程師的薪水相對較高,通常來說,具有3~5年開發經驗的工程師,擁有年薪 10萬元是很正常的一個薪酬水平。
Java發展方向:
一是成為管理人員,例如產品研發經理,技術經理,項目經理等繼續;二是他的技術工作之路,成為高級軟件工程師、需求工程師等。還是看看IDC Java工程師的薪水相對較高。Java軟件工程師一般月薪范圍在4000-10000元,遠遠超過了應屆畢業生月薪2500元的平均水平。通常來說,有一年工作經驗的Java高級軟件工程師的薪酬大致在年薪10—13萬左右。
Tanjurd建議Java就業方向:可以從事JSP網站開發、Java編程、Java游戲開發、Java桌面程序設計,以及其他與Java語言編程相關的工作。可進入電信、銀行、保險專業軟件開發公司等從事軟件設計和開發工作。
第三篇:上海瑭錦解說UI設計
上海瑭錦解說UI設計
1簡介
軟件設計可分為兩個部分:編碼設計與UI設計。UI的本意是用戶界面,是英文User和 Interface的縮寫。從字面上看是用戶與界面2個部分組成,但實際上還包括用戶與界面之間的交互關系。[1]
UI設計是指對軟件的人機交互、操作邏輯、界面美觀的整體設計。好的UI設計不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由,充分體現軟件的定位和特點。UI界面即是用戶界面的簡稱,UI設計是對界面美觀的整理設計,它可以把網站、手機界面、軟件游戲界面變的更加有個性、漂亮、簡單
2內容
與之相應,UI設計師的職能大體包括三方面:一是圖形設計,即傳統意義上的“美工”。當然,實際上他們承擔的不是單純意義上美術工人的工作,而是軟件產品的產品“外形”設計。二是交互設計,主要在于設計軟件的操作流程、樹狀結構、操作規范等。一個軟件產品在編碼之前需要做的就是交互設計,并且確立交互模型,交互規范。三是用戶測試/研究,這里所謂的“測試”,其目標恰在于測試交互設計的合理性及圖形設計的美觀性,主要通過以目標用戶問卷的形式衡量UI設計的合理性。如果沒有這方面的測試研究,UI設計的好壞只能憑借設計師的經驗或者領導的審美來評判,這樣就會給企業帶來極大的風險。3 就業前景
UI即用戶界面設計行業剛剛在全球軟件業興起,屬于高薪技術設計產業,與國外在同步發展水平。其次國內外眾多大型IT企業(例如:百度、騰訊、Yahoo、中國移動、Nokia、聯想、網易、微軟、盛大、淘寶等眾多企業)均已成立專業的UI設計部門,但專業人才稀缺,人才資源爭奪激烈。Tanjurd表示UI就業市場供不應求。
我國UID市場尚在萌芽階段,人才缺口巨大,目前,中國市場上的手機、軟件、網站等產品,同質化程度非常高,過去企業在設計產品的時候,主要是在功能、質量或者產品外觀上和競爭對手有所區別,而現在隨著技術的進步和市場的發展,越來越多的企業意識到用戶體驗的重要性了,而這種用戶體驗的提升則主要依賴于UID的勞動。而由于人力市場的UID人才供應不足,加之企業人才競爭激烈,往往企業很難招到UID,像谷歌這樣的全球性公司,也一樣面臨UID崗位空缺的窘境。專家預測2015年整個UID行業的人才缺口將達到100萬。
瑭錦Tanjurd畢業的 UI設計工作的年薪基本保持在10到15萬,經驗豐富者可以達到20萬,資深的UI設計人員年薪可以更高。
4從業/設計方向
UI界面設計所涉及的領域有平面設計、網站UI界面設計、手機UI界面設計、安卓和ios軟件、游戲界面設計等。網站是展示公司、展示產品的重要網絡平臺,用戶可以通過網站全面的了解公司和產品,有了UI界面設計師,網站才能修飾的更加美觀,吸引用戶,像大家經常逛的淘寶店,有沒有發現許多店家的網店都是做的十分精細漂亮呢,那這就歸功與UI界面設計師了。
瑭錦Tanjurd UI界面設計師從工作內容可以分為3個方向:
1、研究工具:研究界面----圖形設計師,簡單的說就是美工,為軟件產品的外形設計師。界
面設計不是單純的美術繪畫,他需要定位使用者、使用環境、使用方式并且為最終用戶而設計,是純粹的科學性的藝術設計。檢驗一個界面的標準是最終用戶的感受。所以界面設計要和用戶研究緊密結合,是一個不斷為最終用戶設計滿意視覺效果的過程。[3]
2、研究人與界面的關系:研究人與界面的關系---交互設計師,一個網站的構建流程都是由交互設計師完成的。交互設計師的工作內容就是設計軟件的操作流程,樹狀結構,軟件的結構與操作規范(spec)等。一個軟件產品在編碼之前需要作的就是交互設計,并且確立交互模型,交互規范。
3、研究人:研究人----用戶測試/研究工程師。任何產品上市之前都需要通過測試,用戶測試/研究工程師的職責就和游戲玩家里面的測試人員一樣,發現BUG,并反饋給技術人員進行修改完善。這個測試和編碼沒有任何關系,主要是測試交互設計的合理性以及圖形設計的美觀性。測試方法一般都是采用焦點小組,用目標用戶問卷的形式來衡量UI設計的合理性。這個職位很重要,如果沒有這個職位,UI設計的好壞只能憑借設計師的經驗或者領導的審美來評判,這樣就會給企業帶來嚴重的風險性。
第四篇:如何學習安卓開發
如何學習安卓開發?安卓開發學習已經成為IT行業的新潮流。時下,Android也以其創造力、前瞻性、延續性和實現能力成為行業首領,可是怎么學好Android呢?今天,歐柏泰克的老師告訴你如何學好Android。
熟悉Java基礎知識
Android應用的開發語言用的是Java語言,并且在Android中也用到了Java核心類庫的大量的類,因此,在學習Android開發之前,可以先把Java基本語法和Java SE的基礎類庫好好學習一下。Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是機械的照抄別人的代碼,是沒有任何意義的。建議在Android課程前期的Java學習階段中,需要用心的學好。
熟悉一門編程語言
現在大學里面和計算機相關的專業甚至理工類專業一般都會開設C語言課程,只是很多同學在大學期間并沒有好好學習,如果對它掌握的不太好或者很久沒用了,建議先從將其好好復習一下,將其基本的語法再好好回顧一下,最好能搭建一個環境來運行、調試它。如果沒有學過,不妨也提前學習一下。大部分的高校所開設的C語言使用的教材都是用它作為教材,因此無論是購買還是借閱,都容易找到;
熟悉數據結構和算法基礎知識
如果后續有志于游戲方面的開發,最好具備一定的數據結構和算法基礎知識。雖然現代的高級編程語言中,其類庫中已經幫我們實現了大部分的數據結構,一般情況下,我們直接使用即可。但如果能對其原理有所了解,當需要在這些數據結構和算法中間的時候,可以更加的清楚到底應該選擇哪個數據結構或者算法。另外,在圖形圖像處理上面,線性代數的作用也非常重要,如果能掌握一點這方面的基礎知識,無疑也會在后續的學習中如虎添翼。?
第五篇:安卓NFC開發學習筆記
大家學習android開發建議首選android開發文檔,該文檔在你下載的sdk中,路徑:/sdk/docs/index.html
目前NFC應用的大的框架上的理解:
我使用的API LEVEL是19,支持的API有三個:android.nfc,android.nfc.cardemulator,android.nfc.tech NFC在手機上的應用大體分為兩類:讀卡器和卡
android.nfc.cardemulator接口是為NFC作為卡應用提供的接口,在較低版本的API上是沒有的
android.nfc.tech,android.nfc接口是為NFC作為讀卡器應用提供的接口
首先說作為卡,nfc有兩種實現方式,一個是使用NFC芯片作為卡,另一個是使用SIM作為卡
Figure 1.NFC card emulation with a secure element.至于從讀卡器發送的指令到底是傳遞到NFC芯片還是SIM由NFC Controler控制,圖中Secure Element是指SIM,Host-CPU指NFC芯片 android提供HostApduService用于NFC芯片,OffHostApduService用于SIM芯片,傳遞方向在res/xml文件中通過AID來控制
ps:Host-Based Card Emulator 簡稱為HCE
代碼實現:
AndroidManifest.xml 中 配置service,因為作為卡實現的話,NFC功能是作為service存在的
android:permission=“android.permission.BIND_NFC_SERVICE”> android:resource=“@xml/apduservice”/>
res/xml/apduservice.xml 中配置service響應的AID android:requireDeviceUnlock=“false”> android:category=“other”>
配置文件完成后編寫service的處理方法:
NFCService需要繼承HostApduService,如果需要與Activity通信,建議采用廣播方式
也可以自己實現觀察者模式,只是這樣就需要持有Activity的引用,感覺不太好 NFCService.java public class NFCService extends HostApduService {
private Intent intent = new Intent(“com.example.communication.RECEIVER”);
@Override public void onCreate(){
//啟動Acivity
Intent i = new Intent();
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//需要啟動的Activity不是當前Activity的時候需要用FLAG_ACTIVITY_NEW_TASK
i.setAction(“com.apdu.nfc”);
getApplication().startActivity(i);
Toast.makeText(getApplicationContext(), “Service啟動”, Toast.LENGTH_LONG).show();
} @Override public byte[] processCommandApdu(byte[] commandApdu, Bundle extras){//當注冊的AID被選中后,后續指令被分發到這個處理函數中
byte[] sw = new byte[]{(byte)0x90,(byte)0x00};
byte[] response = new byte[5];
if(commandApdu[0]==(byte)0x00 &&commandApdu[1]==(byte)0xA4&& commandApdu[2]==(byte)0x04
&& commandApdu[4]==(byte)0x07&& commandApdu[5]==(byte)0xF0)
{
return sw;
}
else
{
//apdu處理邏輯
switch(commandApdu[1])
{
case(byte)0xA8:
break;
case(byte)0xAE:
break;
default:
return sw;
}
}
intent.putExtra(“command”, commandApdu);
intent.putExtra(“response”, response);
sendBroadcast(intent);//利用廣播與Activity通信
return response;//SW值需要包含在response中
}
@Override public void onDeactivated(int reason){
if(reason==HostApduService.DEACTIVATION_DESELECTED)
{
Toast.makeText(getApplicationContext(), “已選擇其它應用”, Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), “連接斷開”, Toast.LENGTH_LONG).show();
} }
@Override
public void onDestroy()
{
Toast.makeText(getApplicationContext(), “Service關閉”, Toast.LENGTH_LONG).show();super.onDestroy();
}
框架搭建好剩余的事情就很簡單了,apdu的處理邏輯在processCommandApdu方法中實現即可
以上是Host-CPU方式的實現,SIM方式,API介紹中說該方式沒有提供可供操作的API,也就是說Android不會監聽SIM卡與讀卡器之間的通信
所以NFCOffService 只需要實現onBind接口,這樣綁定該Service的Activity可以對NFCOffService進行有限操作 public class NFCOffService extends OffHostApduService {
@Override public IBinder onBind(Intent intent){
// TODO Auto-generated method stub
return null;} } 上面沒有提到的就是,如果你需要使用NFC,需要在Manifest中申請NFC權限:
android.nfc.tech,android.nfc接口是為NFC作為讀卡器應用提供的接口 接口定義了三種Action Tags:ACTION_NDEF_DISCOVERED,ACTION_TECH_DISCOVERED,ACTION_TAG_DISCOVERED。
當你在Manifest文件中將Activity的action-filter設置為這三個Tag中的一種或幾種時,NFC響應事件會按照如圖流程處理
我的理解是ACTION_NDEF_DISCOVERED 是用于兩臺NFC手機之間傳輸文件的
ACTION_TECH_DISCOVERED,ACTION_TAG_DISCOVERED才是用于NFC與卡進行通訊的 所以開發第一步是在Manifest中配置你的Action:
android:resource=“@xml/nfc_tech_filter” />
當然API中說明你可以將多個tech寫在一個tech-list中,我做了嘗試,這樣做會引出一個問題,在程序未啟動的情況下當手機刷卡時不會自動打開程序 如果想要自動打開需要按照上面這種寫法,tech的個數可以根據你想要支持的卡類型進行調整
配置完成后,可以開始編寫自己的Activity的java代碼了
在onCreate方法中,需要獲取NfcAdapter的引用,從名字可以看出這是一個適配器
NfcAdapter nfcAdapter;PendingIntent pendingIntent;@Override protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.pos_main);
dc =(Button)findViewById(R.id.button4DC);
ecc =(Button)findViewById(R.id.button4ECC);
qpboc =(Button)findViewById(R.id.button4QPBOC);
logWindow=(TextView)findViewById(R.id.communication4Financy);
nfcAdapter=NfcAdapter.getDefaultAdapter(this);
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
onNewIntent(getIntent());} 這里使用PendingIntent,該Intent與普通的Intent不同的是它是有一個延遲啟動的功能,它啟動時會回調onNewIntent函數,這樣能夠實現NFC與Activity的交互
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);的含義是將Intent傳遞給this Activity 在onPause與onResume中需要添加代碼
public void onPause(){
super.onPause();
nfcAdapter.disableForegroundDispatch(this);}
public void onResume(){
super.onResume();
nfcAdapter.enableForegroundDispatch(this, pendingIntent, FILTERS, TECHLISTS);} enableForegroundDispatch的作用是,當NFC事件發生時如果當前Activity不是注冊了NFC action-filter的Activity,手機會顯示注冊了NFC事件的Activity供用戶選擇
如果當前Activity注冊了NFC action 則將事件優先交由當前Activity處理。onNewIntent實現:
@Override public void onNewIntent(Intent intent){
Parcelable p = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
if(p==null)
{
return;
}
Tag nfcTag =(Tag)p;
final IsoDep isodep = IsoDep.get(nfcTag);// final NfcA isodep = NfcA.get(nfcTag);
final byte[] cmd = {(byte)0x00, // CLA Class
(byte)0xB4, // INS Instruction
(byte)0x04, // P1 Parameter 1
(byte)0x00, // P2 Parameter 2
(byte)0x00, // Le
};
try {
isodep.connect();
byte[] reaponse=null;
logWindow.append(“00B4040000”+'n');
try {
reaponse = isodep.getHistoricalBytes();
logWindow.append(Util.bytes2HexString(reaponse)+'n');
reaponse =isodep.transceive(cmd);
logWindow.append(Util.bytes2HexString(reaponse)+'n');
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch(IOException e1){
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
isodep.close();
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
} } 首先需要獲取Tag,Tag是操作NFC的基礎
Parcelable p = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
if(p==null)
{
return;
}
Tag nfcTag =(Tag)p;再將tag轉換成特定的通訊協議 final IsoDep isodep = IsoDep.get(nfcTag);連接讀卡器: isodep.connect();獲取歷史字節:
reaponse = isodep.getHistoricalBytes();響應指令:
reaponse =isodep.transceive(cmd);最后斷開連接:(斷開動作應該在Activity關閉或者pause的時候發生)finally{
try {
isodep.close();
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
} onNewIntent里面可以實現業務邏輯的處理以及UI