美文网首页
五、项目结构

五、项目结构

作者: 秋风潇潇1992 | 来源:发表于2018-06-14 17:39 被阅读0次

常用包名定义及含义

  • com.company.test.system(application service等)
  • com.company.test.thread(thread基类等)
  • com.company.test.tk(ip地址的获取类)
  • com.company.test.util(定义一些接口 结构等)
  • com.company.test.pack(socket通讯包类)
  • com.decoder.util(H264解码库 必须和jni中定义的包名一致)
image

MyActivity的父类封装

  • 所有的Activity都继承于它
  • 定义公共的成员变量和函数
  • 可做退出和打开的特殊定制效果
package com.company.test.ui;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;

import com.company.test.R;

public class MyActivity extends AppCompatActivity {

    public static Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        mContext = this;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK){
            animFinish();
        }

        return super.onKeyDown(keyCode, event);
    }

    private void animFinish(){
        finish();
    }

    //activity进入  从右边进入
    public void overridePendingTansitionEnter(){
        this.overridePendingTransition(R.anim.in_form_right,R.anim.out_right_to_left);
    }

    //activity退出
    public void overridePendingTansitionExit(){
        this.overridePendingTransition(R.anim.in_form_right,R.anim.out_right_to_left);
    }
}

SafeThread父类封装

  • 所有thread类的父类
  • 定义开启和关闭机制 优化代码
package com.company.test.thread;

import android.util.Log;

/**
 * 所有线程内的基类
 */
public class SafeThread extends Thread {

    private static final String TAG = "SafeThread";

    //可以作为线程运行标示 避免重复启动
    protected boolean isRunFlg = false;

    public void setRunFlg(boolean flag) {
        isRunFlg = flag;
    }

    public void safeStart(){
        if (isRunFlg)
            return;
        setRunFlg(true);
        start();
    }

    public void safeStop(){
        if (!isRunFlg) return;
        setRunFlg(false);
        tryJoin();
    }

    public void tryJoin(){
        try {
            interrupt();
            join();
        }catch (InterruptedException e){
            Log.i(TAG, "tryJoin: ---" + e.getMessage());
        }
    }
}

通讯过程

  • 手机设备端登陆login
  • 手机设备端验证verify
  • 设备端视频请求(请求成功后返回videoId)
  • 设备端另开一个socket2
  • socket2发送视频请求(带上前面接收到的videoId)
  • 服务器接收到视频请求指令后开始发送视频

相关文章

  • 五、项目结构

    常用包名定义及含义 com.company.test.system(application service等) c...

  • 五、重构项目结构

    在前面的几章内容中,我们已经实现了ts-axios的发送请求、处理请求、Promise化等操作,同时也处理错误的处...

  • Vue项目组织规范

    目录 一、项目结构的核心思想 二、项目目录结构 三、资源路径编译规则 四、index.html 五、build目录...

  • OA交接文档

    一、项目结构 二、项目完成情况 三、 项目有待改进的地方 四、项目所用第三方库 五、个人电脑项目目录

  • iOS红海新闻源码

    本人工作之余写的一个红海新闻应用,MVC架构设计,项目虽然很小,但是五脏俱全。下面请先看看项目结构吧: 项目结构如...

  • React Native学习(五)- 项目结构

    1、index.ios.js结构及注释 2、Xcode中的显示以及注释 3、组件多个样式的使用,使用数组,数组元素是对象

  • 微信小程序边学边记系列(3)

    项目结构:(分为全局结构和局部结构) 微信自动生成项目 ==>全局结构: 上述结构是微信小程序创建项目时,自动生成...

  • 使用 vue-cli 脚手架一键搭建工程

    五部走: 全局安装vue-­cli 进入目录–初始化项目 进入项目 安装依赖 启动项目 目录结构的分析 一、├──...

  • 新麦肯锡项目管理五步法

    新麦肯锡项目管理五步法 新麦肯锡五步法从项目管理的角度,串起战略项目解决从开始到交付的5个关键步骤:定义问题、结构...

  • PPP项目融资结构

    PPP项目融资主要考虑4个方面的结构性问题,分别是项目公司结构、项目融资结构、资金来源结构、信用增进结构。 1. ...

网友评论

      本文标题:五、项目结构

      本文链接:https://www.haomeiwen.com/subject/gnoyeftx.html