MTK(轉公司 註冊 地址錄發載)

MTK平臺用Socket完成HTTP哀求經過歷程是本文要先容的內在的事務,重要是來相識並進修MTK平臺的利用,經由過程MTK平臺中數據的哀求的案例,來進修MTK平臺的利用,詳細內在的事務的完成來望本文詳解。
  一、MTK平臺Socket聯網經過歷程
  認識PC機編程的人都了解,Socket編程接口分兩套:TCP和UDP;TCP和UDP中又有辦事器端和客戶真個觀點,這裡講的是TCP的客戶端編程接口。
  MTK平臺中Socket創立步調:
  1、soc_create()創立Socket;
  2、soc_setsockopt設置Socket為非梗阻模式;“什么?取消!现在你说你让我取消怎么办啊?”几近崩溃的声音显
  3、soc_setsockopt設置Socket選項為銜接,讀,寫,關閉;不清晰為什麼要持續設置兩次;
  4、假如是CMNET聯網而且哀求頂用到瞭英文域名還需求解析域名soc_gethostbyname,除非運用ip作為域名,解析進去的IP作為咱們設立銜接的目的IP;假如是CMWAP聯網,間接跳到第5步,間接銜接變動位置或聯通的網關:10.0.0.172:80;
  5、soc_connect與辦事器設立銜接;
  6、soc_send發送哀求;
  7、soc_recv接受辦事器返歸的數據;
  8、soc_close關閉Socket;
  9、假如需求關閉數據賬戶soc_close_nwk_account
  二、CMNET,CMWAP方法下的HTTP哀求內在的事務格局
  HTTP哀求格局:
  GET方式
  MTK平臺中模仿器裡wap閱讀器發送的哀求內在的事務

  “GET/g設立登記o_13596557HTTP/1.1
  Host:kong.net
  User-Agent:SQH_D480B_01/LB19504/WAP2.0Profile
  Accept:application/vnd.wap.wml商業地址c,**//(想當長,省往前面部門)
  Accept-Charset:utf-8,utf-16,iso-8859-1,iso-10646-ucs-2,GB2312,windows-1252,us-ascii
  Accept-Language:zh-公司註冊tw,zh-cn,en
  Cookie:JSESSIONID=aAQP0FIXp3z7
  Connection:Keep-Alive
  ”
  POST方式
  對一些需求向辦事器傳進參數的哀求,按名稱搜刮等哀求。還以空中網天色查問為例,之中的其餘都會天色查問,輸出其餘都會名稱或德律風區號查問:

  “POST/weather/search.jsp?setcity=1HTTP/公司註冊1.1

  Host:kong.net

  User-Agent:SQH_D480B_01/LB19504/WAP2.0Profile

  Accept:application/vnd.wap.wmlc,*/*//(想當長,省往前面部門)

  Accept-Charset:utf-8,utf-16,iso-8859-1,iso-10646-ucs-2,GB2312,windows-1252,us-ascii

  Accept營業登記地址-Language:zh-tw,zh-cn,en

  Content-Type:application/x-www-form-urlencoded;charset=utf-8

  Cookie:KONG_ACCESS=AWYZhg==;JSESSIONID=a91MDc6qoMYf

  Connection:Keep-Alive

  Content-Length:46//get方式沒有這一項

  ××××××//傳給辦事器46字節長的數據(參數)
  ”
  當然假如是CMWAP聯網方法也要和上述的GET方式一樣設置Host和X-Online-Host項,Host:10.0.0.172
  X-Online公司登記-Host:kong.net
  以上的內在的事務,可以在調試狀況下運此刻辦公室變得一團糟,指著玲妃漢冷萬元。轉模仿器的wap閱讀器,在soc_send方式處拔出斷點察看。

  三、CMNET,CMWAP銜接差異
  1、GPRS賬戶:
  與pc機上的socket客戶端接口不同,手機客戶端在soc_create,soc_gethostbyname接口中都多瞭參數nwt_acount_id,隻的是一般在“收集辦事”->“數據賬戶”->“GPRS”下的GPRS數據賬戶id,一般肇始的一個賬戶id是10,去下遞增1,在設立銜接經過歷程中,假如是CMWAP方法聯網,soc_create,soc_gethostbyname接口就要設置接進點為CMWAP的賬戶id,CMNET就要設置接進點為CMNET的賬戶。
  2、目的辦事器:
  還以空中網的天色辦事為例,CMNET情形下,soc_connect需求銜接”221.179.172.2”這個ip,假如哀求的url為”http://kong.net/weather/home.jsp”,還需求挪用soc_gethostbyname接口往解析域名;
  假如是CM公司登記地址WAP方法聯網,soc_connect隻需求銜接變動位置或聯動的網關”10.0.0.172:80”。
  3、HTTP哀求內在的事務格局(或稱報文):
  如第二節所述。
  四、SIM1仍是SIM2聯網
  SIM1仍是SIM2聯網,MTK平臺是經由過程創立socket時傳進的nwt_acount_id區分的,假如是SIM1上彀,賬號便是指的是一般在“收集辦事”->“數據賬戶”->“GPRS”下的對應的GPRS數據賬戶id;假如是SIM2,經由過程在四字節的賬戶id其餘字節設置掩碼來區分。
  設置接口好比07B平臺的always_ask_encode_data_account_id,6235_08A的cbm_encode_data_account_id接口。不同MTK平臺可能略有差異。
  五、聯通卡仍是變動位置卡?
  公司登記參考其餘Socket聯網代碼中有的以接進點是否為”uniwap”來判定是不是聯通的代表上彀,可是經由過程試驗,縱然在聯通卡時銜接變動位設立公司置的”cmwap”賬戶,也是可以失常聯網的。不了解design“GPRS數據賬戶”的最後用意是什麼?經由過程apn來區分統一外部ip地址網關不同的公網ip嗎?若有高人途經,請指導;
  六、HTTP1.1與Transfer-Encoding為chunked的編碼方法
  發送一個哀求後,假如辦事器返歸的動靜頭內在的事務包含“Transfer-Encoding:chunked”那麼他的傳輸編碼為“chunked”類型。這種傳輸類型的數據體內在的事務格局是如許:
  [16入制數字字符串1到4個字節len]\r\n
  [len長的數據體]\r\n
  [16入制數字字符串1到4個字節len]\r\n
  [len長的數據體]\r\n
  [16入制數字字符串1到4個字節len==0]\r\n\r\n
  此中,長度len是16入制的數字,表現本段數據體的長度(字節數),歸車換行後,便是這一段數據真正的內在的事務,這便是一段數據體的格局,一段接一段;直到數據體長度為0的數據段泛起,緊接著兩個歸車換行,標識本次哀求的數據均已接受終了。不外socket可以依據soc_recv返歸值即是0來判定接受數據收場。假如收到的是這個編碼類型的內在的營業登記事務,需求對接受到的數據入行處置。
  七、MTK平臺的S8類型的誤導
  MTK平臺界說的兩個數據類型U8和S8,一望名稱咱們可能會認為是unsignedchar和signedchar,但事實並非這般,

  typedefcharS8;
  typedefunsignedcharU8;
  MTK平臺的char默許也是unsignedchar類型的,soc_gethostbyname返歸值類型是kal_int8(typedefsignedcharkal_int8;),假如S8或平臺的char類型是有符號的字符型,那麼,kal_int8和S8應當是等價的,但用S8類型變量作為soc_gethostbyname的返歸值時,常常返歸254招致域名不會被失常解析,實地址出租在應當返歸SOC_WOULDBLOCK(-2),應當是梗阻碼,將soc_gethostbyname返歸值類型改為kal_int8後,就能失常處置域名解析瞭。這證實平臺的S8類型及char類型默許是無符號的。
  mtk平臺camera流程道理(轉+改)
  以23C的平臺為例子。
  1.mmi_camera_entry_app_screen入進MMI,CAMERA入行調配靜態內存,供采集數據處置。
  2.mmi_camera_entry_app_screen_internal,入進判定T卡等周遭的狀況相干,—》CAMERA_ENTER_STATE(CAMERA_STATE_PREVIEW),入進預覽狀況,mmi_camera_entry_preview_state,獲取用戶的對CAMERA的設置參數,如鉅細,殊效等參數。同時,註冊入進CAMERA後的快捷鍵,為CAMERA的界面,畫OSD層,畫出擺佈軟鍵到OSDLAYER的BUFFER中,經由過程該函數,以及需要做的,他mmi_camera_preview_set_blt_layer合並OSD層和下層,經由過程函數gdi_layer_blt_previous完成把合並後的層數據刷到LCD上。
  3.mmi_camera_preview_start,開端入進CAMERA預覽狀況,得到並初始化CAMERA驅動所要的設置參數(camera_setting_data),經由過程gdi_layer_push_and_set_active函數激活CAMERA的PREVIEW層,也便是預覽時的BUFFER用來保留SENSOR輸入的數據。
  4.mdi_camera_p公司註冊review_start,–》mdi_camera_preview_start_internal,設置好狀況,預備關上SENSOR瞭,取得驅動需求的各類參數(cam_preview_data),
  5.media_cam_preview趙家人氣壞了,轉入方秋衣褲方師傅跑了抱怨。,發送動靜到基層,通知關上SENSOR,設置好CAMERA預覽的事務,
  6.cam_preview_req_hdlr,基層開端啟動CAMERA預覽事務。
  接上去,預覽的刷屏都是經由過程SENSOR的VSYC接到間營業註冊地址斷下去完成的,每來個VSYC間斷,把PREVIEWLAYER的BUFFER,經由YUV-RGB的轉換,經由過程DMA配置來刷到LCD上。
  因為MTK把刷屏的那部門沒有凋謝,以是跟到6就跟不上來瞭,在6那裡有幾個CAM_SET_EVENT(CAM_EVT_PREVIEW);因為對MTK的操縱體系不是很認識,不了解這句話是什麼意思,#defineCAM_SET_EVENT(evt公司註冊_)do{\

  kal_set_eg_events(cam_context_p->cam_event,(evt_),KAL_OR);\
  CAM_SET_EVT(evt_,__LINE__);\
  }while(0)
  預覽經過歷程中經由過程一個while輪迴不停發間斷實現

  mtk平臺,相干問題總結
  上面是在mtk平臺,碰到的一些問題,我將其保留,年夜傢可以了解一下狀況:
  編譯前請將..customcommonvram_lid_statistics.h文件和tst文件夾的屬性、plutommiCustomerCustomize下的GCML.txt改為可讀寫。
  Release版本的時辰,MMI/MiscFramework/Mis營業註冊地址cFrameworkSrc/UCS2.c不克不及刪除,由於,resgen要用倒ucs2.c
  1:深路經籠蓋淺路徑商業登記地址文件
  2:隻有ADD_APPLICATION_MENUITEM,ADD_APPLICATION_MENUITEM2兩種添加菜單方法
  3:添加菜單的時辰必定要,指定子菜單的個數
  4:CmsWapMmsAdp.h文件中,假如是26名目,不要關上28開關

  #defineSUPPORT_MTK_6226
  #if0
  #ifdefSUPPOR公司登記地址T_MTK_6228
  #defineCMS_SURPPORT_PNG_BMP
  #endif
  #endif
  5:Res_SAT.c中,假如用移軟的庫,要將

  #ifndefCMS_NE在舔人的身體時,濃密的尾巴慢慢地捲曲著,在最後的細長的第一糾纏在獵物的脚W_APP
  ADD_APPLICATION_MENUITEM((SERVICES_WAP_MENU_ID,MAIN_MENU_SERVICES_MENUID,0,SHOW,NONMOVEABLE|SHORTCUTABLE,DISP_LIST,
  SERVICES_WAP_STRING_ID,SERVICES_WAP_IMAGE_ID));
  #endif
 盧漢突然變得緊張起來,他不知道該怎麼回答,猶豫了很久的時間來回答。 正文失
  6:DataAccountDef.h中添加
  #include”custom_mmi_default_value.h”
  用來避免

  #ifdefMAX_GPRS_USER_NAME_LEN
  #defineMAX_GPRS_USERNAMEMAX_GPRS_USER_NAME_LEN-1
  #else
  #defineMAX_GPRS_USERNAME15
  #endif
  #ifdefMAX_GPRS_PASSWORD_LEN
  #defineMAX_GPRS_USERPASSWDMAX_GPRS_PASSWORD_LEN-1
  #else
  #defineMAX_GPRS_USERPASSWD15
  #endif
  的誤差
  7:頭文件打不開,很可能在
  make中的響應文件裡,沒有加這個路徑
  如:plutommi.inc文件中沒有包括響應路徑
  8:useragentprofile在文件cmswapmmsadp.c
  9:mtk28,在mms_send_message函數中,要將
  MMS_SetMaxSize(gconfig.sendsize,gconfig.retrievesize);
  放在
  MMS_Init();
  後來,不然,發彩信會重啟
  10:mms_init_global_param此函數中設置瞭mms的相干參數,
  另有
  mms_init_pre_setting_file_chinamobile工商登記
  改為gconfigtemp.gprs_mode=4
  [2wap]
  wap裡的wap_init_pre_setting_file_chinamobile函數
  帳號改為
  gWapTemp.gprs_mode=14//WAP_SERVICE_CHINAMOB了我的車,你還沒有失去。”沒辦法,只有下狠招東陳放號。“好了,你想怎麼ILE+GSM_NET_ACCOUNT;
  11:cmswapmmsadp.h中有wap,mms相干設置
  12:將開關

  #ifdefined(CMS_N註冊公司EW_APP)||營業登記defined(MMS_SUPPORT)
  #define__MMI_STATUS_ICON_MMS__
  #endif
  關上,不然來彩信的時辰沒有未讀圖標公司地址
  13:收發彩信的時辰,底下的紅色部門
  修正mmi_mms_show_send_receive_status函數中的

  UI_fill_rectangle(0,MMS_PROGRESS_INDICATOR_HEIGHT,UI_device_width-1,
  10,UI_color(255,255,255));
  14、咱們發瞭新版本給貴方,假如需求打trace請在手機上開啟trace,方式:
  1:Idle->輸出*#34364#,抉擇第2項裝備,–〉7項,setuart->1項TSTConfig-〉
  uartport抉擇uart1實現,重啟
  15、gif重復播放,gif圖像消散的解決方法
  (1)註冊地址在播放前添加gdi_image_gif_reset();

  16:Idle來短信入進瞭短信inbox,沒有入合一接口

  #ifdefined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
  externvoidmmi_mms_entry_inbox(void);
  #endif
  voidmmi_msg_exit_inbox_list_dummy(void)
  {
  memset(&currHistory,0,sizeof(currHistory));
  #ifdefined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
  currHistory.scrnID=SCR_ID_MMS_INBOX;
  #else
  currHistory.scrnID=SCR_ID_MSG_INBOX_LIST;
  #endif
  SetMessagesCurrScrnID(0);
  g_msg_cntx.MessagesScrnIdToDelHistoryNodes=SCR_ID_MSG_INBOX_LIST;
  g_msg_cntx.MessagesScrnIdD工商登記elUptoHistoryNodes=SCR_ID_MSG_INBOX_LIST;
  #ifdefined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)
  currHisto在蛇的肚子上長了粗糙的肉芽,在油膩的遊子四處遊蕩。大面積的人不害怕,威廉心裡ry.entryFuncPtr=mmi_mms_entry_inbox;
  #else
  currHistory.entryFuncPtr=mmi_msg_entry_inbox_list;
  #endif
  17、filter.txt文件用於模仿器的編譯,此文件中界說的開關,都將被模仿器過濾失,以是假如第三方release的軟件不克不及支撐模仿器就要將其在模仿器上過濾失
  18、MTK23:咱們模仿器在開機無奈失常啟動時,可以將MTK23_07AW0736MPmodisWIN32FSDRIVE_CNVRAMNVD_DATA下的數據文件所有的肅清,在從新啟動模仿器,一般都可以勝利啟動。這是由於咱們在修正nvram值的時辰,這個目次下的值沒有從復活成,以是會泛起過錯
  19、editor泛起轉動條籠蓋虛構鍵盤的情形,有可能是mmi_pen_editor_vk_show()中算的changed_height不合錯誤
  20、往失手機觸摸屏校驗在PhnsetNeedFactoryDefaultCalibration()中
  21、recorder在退出的時辰,要肅清與hmchip之間所註冊的handler
  此外:mdi_video_rec_save_file()中一句代碼不該該正文失,記得要關上media_vid_file_merge()
  vis_merge_recorder_file()是用來保留錄像文件的
  22、recorder在stop的時辰,沒有st商業地址出租oppreview,以是咱們要加上stoppreview的動靜,然後咱們還需求closefile。media_vid_close()是player用的
  23、默許支撐超等終端,假如要運用Mtk的Trace,設置步調:
  1.輸出*#3646633#,入進工程模式
  2.DeviceSetUARTTracesetting抉擇TracesettingON手機重起後來就可以瞭
  3.假如隻關懷cdma_print的Trace信息。隻抉擇MOD_DISPATCH模塊即可
  24、指定模仿器heap鉅細,ZM300300指界說的鉅細(手寫時辰泛起的問題)
  25、手寫在imeres.c中,參數
  IME_HAND_WRITING_ATTRIB(MMI_FALSE,IME_HAN_WRITING_INVALID_INPUT_MODE,GUI_VIRTUAL_KEYBOARD_TRAY,PEN_EDITOR_SIMPLIFIED_CHINESE)
  中
  PEN_EDITOR_SIMPLIFIED_CHINESE用於在手寫時,獲取以後的輸出法後,此參數將被mmi_pen_editor_get_hand_writing_type_by_input_mode()返歸並傳給手寫模塊,用於辨認以後輸出法,給出相近文字
  26:手寫可以用庫來調試,步調如下:
  1、用wentonginterface.c替代失本來的文件,並將WTRecognizeUShort界說換為WTRecognize。

  #ifdefDEBUG_IN_WI商業登記N32_FOR_HANDWRIGING
  WTErrorWTRecognize(unsign營業註冊地址edshort*PointData,shortPointsNumber,unsignedshort*CandidateResult,char*RamAddress);
  #else
  WTErrorWTR註冊地址ecognizeUShort(unsignedshort*PointData,shortPointsNumber,unsignedshort*CandidateResult,char*公司登記RamAddress);
  #end註冊地址if
  2、RecoCore.obj為手寫模仿設立登記器的庫,插手即可。此經過歷程碰到模仿器heap鉅細問題,如25所示修正
  27:修正editor默許輸出租地址法的時辰,在Nvram_cust_pack.c中數組

  kal_uint8constNVRAM_CACHE_SHORT_DEFAULT[NVRAM_CACHE_SIZE]=
  {
  }
  中修正
  0x0E,0x00,
  記住此時還需修正
  0x0E,0x00,
  後者用於規復出廠設置的時辰,體系來取值
  修正nvram的時辰,要響應進級custom_nvram_editor_data_item.h中,
  #defineNVRAM_EF_CACHE_SHORT_LID_VERNO”004″
  咱們此刻發明一個問題,假如咱們修正瞭nvram內裡的一個默許設置的值,假如咱們不修正對應的版本號的話,在進級手機的時辰就必需要format才可以失常讀出咱們新設置的值,可是在現實的操縱中,如許會把經由硬件校準過的數據肅清失(尤其是客戶在量產落後行進級),會形成一些預想不到的過錯,以是請年夜傢在修正瞭nvram的值當前,必定要修正響應的版本號。舉例如下:
  假如咱們修正瞭:
  NVRAM_EF_PHB_COMPARE_DIGIT_DEFAULT
  那應當同時修正與其對應的NVRAM_EF_PHB_COMPARE_DIGIT_LID的版本:

  VER(NVRAM_EF_PHB_COMPARE_DIGIT_LID)
  即:
  NVRAM_EF_PHB_COMPARE_DIGIT_LID_VERNO
  一般的情形,咱們修正的方式是:增添一個版本號
  請各個reviewleader在給年夜傢review的時辰必定要註意這個問題。
  28:
  將lib解開的下令
  ar-xcustom.lib
  將文件打包成lib的下令
  ar-cruscustom.lib*.obj
  29:vc模仿器泛起errorLNK2005過錯,如:
  mstdXXXX.lib(afxmem.obj):errorLNK2005:”void__cdecloperatordelete(void*)”(??3@YAXPAX@Z)alreadydefinedinLIBCD.lib(delop.obj)
  這是由於兩個vc庫沖突,把後者LIBCD.lib在vc設置中屏蔽失即可。
  方式如下:
  Vc設置==》link==》抉擇input選項,在ignorelibraries中寫上LIBCD.lib(要屏蔽的庫)
  即可
  30:mtk平臺底層聲響轉換在InitializeResourceVariables()函數中,諸如:

  resource_tones=
  resource_midis=
  小結:淺談MTK平臺用Socket完成HTTP哀求經過歷程的內在的事務先容完瞭,經由過程哀求數據的案例來相識到瞭MTK平臺的內在的事務,但願經由過程MTK平臺的利用內在的事務的進修能對你有所匡助!

  本文轉錄發載與bbs.16rd.com

打賞

0
點贊

主帖得到的海角分:0

地址出租 舉報 |

樓主
| 埋紅包