整理記錄App開發(fā)常用功能

1.網(wǎng)絡(luò)請(qǐng)求安全性

目的

確保接口都是合法的被訪問楼雹,而不是外部人員通過接口測(cè)試工具(例如postman)進(jìn)行訪問浆熔。
和后臺(tái)開發(fā)人員溝通好簽名規(guī)則后,Android 未登錄無(wú)token 的情況下后端開發(fā)人員按約定好的加密方式進(jìn)行驗(yàn)簽,若已登錄有token的情況下削葱,安卓端請(qǐng)求頭帶token,后端驗(yàn)證token的合法性

簽名的寫法(舉個(gè)例子)

  1. 把所有參數(shù)加一個(gè)時(shí)間戳參數(shù)示姿,對(duì)所有參數(shù)首字母排序并生成字符串冕屯。
  2. 時(shí)間戳整除17取余數(shù)
  3. 然后整個(gè)字符串從余數(shù)位置進(jìn)行截取,首尾互換,未滿余數(shù)的不截取字符串躯泰,
  4. 再進(jìn)行MD5加密
    實(shí)例代碼
public static String getSignature(JSONObject initParam,long time) throws JSONException {
        List<String> list = new ArrayList<>();
        Iterator iterable=initParam.keys();
        while (iterable.hasNext()){
            list.add((String) iterable.next());
        }
        Collections.sort(list);
        StringBuffer sb=new StringBuffer();
        for (String s:list){
            sb.append(initParam.getString(s));
        }

        String rawString=sb.toString();
        int  l= (int)(time%17);
        if(rawString.length()>l){
            rawString=rawString.substring(l,rawString.length())+rawString.substring(0,l);
        }
        return Utils.toMD5(rawString);
    }

2.APP 免密登錄谭羔,提高用戶體驗(yàn)度。

背景

用戶登錄系統(tǒng)后一直在操作麦向,當(dāng)?shù)絫oken到期后瘟裸,突然該用戶被提示需要重新登錄,這樣的體驗(yàn)是非常不好的诵竭。

開發(fā)前期準(zhǔn)備:后臺(tái)開發(fā)人員提供一個(gè)刷新token的接口

App端開發(fā)思路

  1. 用戶第一次登錄填寫賬號(hào)密碼后话告,調(diào)用登錄接口獲取用戶信息、accessToken卵慰、refreshToken沙郭,
  2. 當(dāng)后臺(tái)返回的信息錯(cuò)誤碼為accessToken失效時(shí),使用refreshToken,訪問刷新token的接口獲取最新accessToken

3.手機(jī)上獲取Log裳朋,擺脫電腦限制病线,從而快速準(zhǔn)確定位到bug

背景

常規(guī)情況調(diào)試app,都是手機(jī)連接電腦鲤嫡,根據(jù)Android studio logcat 查看log送挑。
但由于app各個(gè)場(chǎng)景的復(fù)雜性(例如用戶那邊出現(xiàn)bug,公司測(cè)試人員無(wú)法復(fù)現(xiàn)暖眼、bug出現(xiàn)在智慧工廠生產(chǎn)環(huán)境中惕耕,開發(fā)人員不在現(xiàn)場(chǎng)等場(chǎng)景),出現(xiàn)bug時(shí)無(wú)法連接電腦罢荡,便看不到log了赡突,

開發(fā)思路

通過在app代碼中加入執(zhí)行帶有l(wèi)og輸出的cmd命令的代碼对扶,獲取到log輸出的字符串,寫入sd卡完成log實(shí)時(shí)記錄惭缰。
實(shí)例代碼

 try {
               cmds = "logcat";//打印所有日志信息
                logcatProc = Runtime.getRuntime().exec(cmds);
                mReader = new BufferedReader(new InputStreamReader(
                        logcatProc.getInputStream()), 1024);
                String line = null;
                while (mRunning && (line = mReader.readLine()) != null) {
                    if (!mRunning) {
                        break;
                    }
                    if (line.length() == 0) {
                        continue;
                    }
                    if (out != null && line.contains(mPID)) {
                        out.write((line + "\n").getBytes());
                    }
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (logcatProc != null) {
                    logcatProc.destroy();
                    logcatProc = null;
                }
                if (mReader != null) {
                    try {
                        mReader.close();
                        mReader = null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (out != null) {
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    out = null;
                }

            }

        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浪南,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子漱受,更是在濱河造成了極大的恐慌络凿,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昂羡,死亡現(xiàn)場(chǎng)離奇詭異絮记,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)虐先,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門怨愤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛹批,你說我怎么就攤上這事撰洗。” “怎么了腐芍?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵差导,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我猪勇,道長(zhǎng)设褐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任泣刹,我火速辦了婚禮助析,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘项玛。我一直安慰自己貌笨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布襟沮。 她就那樣靜靜地躺著,像睡著了一般昌腰。 火紅的嫁衣襯著肌膚如雪开伏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天遭商,我揣著相機(jī)與錄音固灵,去河邊找鬼。 笑死劫流,一個(gè)胖子當(dāng)著我的面吹牛巫玻,可吹牛的內(nèi)容都是我干的丛忆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼仍秤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼熄诡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诗力,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凰浮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苇本,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袜茧,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年瓣窄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笛厦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俺夕,死狀恐怖裳凸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啥么,我是刑警寧澤登舞,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站悬荣,受9級(jí)特大地震影響菠秒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氯迂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一践叠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嚼蚀,春花似錦禁灼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至导帝,卻和暖如春守谓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背您单。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工斋荞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虐秦。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓平酿,卻偏偏與公主長(zhǎng)得像凤优,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜈彼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容