主頁 > 移動端開發 > docker學習之入門加進階介紹篇,全面筆記

docker學習之入門加進階介紹篇,全面筆記

2020-11-05 23:41:44 移動端開發

docker是什么?

? 我發現很多初學者,包括我也初學不久,也是聽到這樣的模棱兩可的概念,docker是容器,久而久之,還沒學的時候,可能冉升出更奇妙的思想,把docker當成了服務器的角色,我有個朋友,前兩天剛安裝docker,想部署專案以docker的形式,就想著docker是一個大容器,往里面先布置環境,裝個jdk8,再往里面裝mysql等等,其實思路一下子就岔開了,雖然專案的運行需要這些組件,但是docker的思想肯定不是這樣的,這樣就相當于一臺服務器無異了,那還要docker干什么是吧,

? 按照個人理解,或者官方來說,docker是一種容器引擎,本身不是一個大容器,它包括三個大的內容:鏡像(image);容器(container);倉庫(repository),這三個具體下面在具體介紹,先來了解為什么會出現docker這種組件,它的出現為了解決什么問題,了解了這個我覺得才對它有熟悉的定位,學一門技術,我在其他博主那里看到葵花寶典,現在我自己學新技術也是,必須先了解它,再考慮怎么使用,

寫代碼的四點:

1.明確需求,要做什么?

2.分析思路,要怎么做?(1,2,3……)

3.確定步驟,每一個思路要用到哪些陳述句、方法和物件,

4.代碼實作,用具體的語言代碼將思路實作出來,

學習新技術的四點:

1.該技術是什么?

2.該技術有什么特點?(使用需注意的方面)

3.該技術怎么使用?(寫Demo)

4.該技術什么時候用?(在Project中的使用場景 )

為什么會出現docker?

? 專案一般都有開發–運維兩個角色,當然小公司可能都是一個人在干(比如我),可能會嘗嘗聽到這樣的對話“我本地沒問題的,怎么到你那就不行了”,或者“怎么本地測驗可以,一部署線上就不行了”,“windows測驗都沒問題的,到了linux就不行了”等等,

? 其實不管是運維跟開發溝通也好,自己包攬也罷,都會出現這樣的問題,這里面包括很多,從我的電腦搬到你的或者線上,要配置環境,配置應用,jdk、redis集群、nginx、ES、Hadoop、mysql,windows跨平臺等等,都得先部署好,我在公司就部署過老專案,還是前后端一體的,換了個服務器,去上面裝環境等等,裝tomcat,打包成war包,放到webapp下面,最后直接啟動,還好CRT-linux連接工具不會顯示紅色,不然簡直血流成河,很多東西一部署到線上就不行了,其中配置等等問題在里面,

? 所以docker就是能解決這些問題的玩意~~真香警告,我剛學了這么段時間,簡直愛不釋手,docker可以做到把環境跟專案和配置等一起打包成一個鏡像,然后上傳到倉庫,這時候別人去倉庫上拉取(就類似于GIT),直接運行即可,高度還原場景,前面的對話基本一掃而空,其實除了打包專案,還有很多組件鏡像源,像我搭建mq服務,直接下載docker鏡像源啟動,唉,真香,

? docker的思想就來自于集裝箱!

? JRE - 多個應用(埠沖突)- 原來都是交叉的!

? docker通過隔離沙箱機制,可以將服務器利用到極致!

docker的基本組成

img

鏡像(image):

? 這玩意就像你裝雙系統,或者你用vm的時候,也需要一個鏡像,可以通過這個鏡像來創建容器服務,比如tomcat鏡像==>run==>容器(提供服務器),通過鏡像可以創建多個容器(最終服務運行或者專案運行就是在這個容器中的),可以直接到遠程倉庫search各種鏡像,centos、ubuntu、rabbitmq、mysql等等,搭建起來簡單快捷,總之香~

容器(container):

? docker容器技術,通過鏡像來創建一個或者一組容器,啟動、停止、洗掉、等命令,每個容器都是獨立的服務,互不干擾,集裝箱思想、目前可以把這個容器理解為一個簡易的Linux系統,

倉庫(repository):

? 倉庫就是存放鏡像的地方,有公有私有,跟git類似

? docker hub是國外的,阿里云等都有容器服務器(可以配置鏡像加速器!)

Docker跟虛擬機的區別:

  • 體積小,如果虛擬機裝個ubuntu鏡像,可能是十幾個G甚至更大,而docker版本只需要90M不到~
  • 資源占用小,虛擬機會獨占一部分記憶體和磁盤空間,它運行的時候,其他應用就不能用這些資源,就算虛擬機里面只有1m的東西在跑,也需要幾百m的記憶體運行,docker容器只占用需要的資源,不占用那些沒有用到的資源,另外,多個容器可以共享資源,虛擬機都是獨享資源,
  • 啟動速度快,虛擬機啟動,用過的都知道~跟你電腦開機差不多,啟動一個作業系統時間,有時幾分鐘,docker容器的底層就是相當于啟動本機的一個行程,速度非常快,
  • 隔離,虛擬就需要隔離幾個應用,就要創建多個虛擬機,消耗大量的記憶體和CPU,一般人的電腦可頂不住,docker守護行程可以直接與主作業系統進行通信,為各個docker容器分配資源,還可以將容器與主作業系統隔離,并將各個容器互相隔離,集裝箱思想,

Docker的安裝

1、Linux要求內核3.0以上

2、centos 7

我的是ubuntu18
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20201104110510404.png#pic_center在這里插入圖片描述

安裝:

幫助檔案:https://docs.docker.com/engine/install/

或者:https://www.runoob.com/docker/ubuntu-docker-install.html

可以使用官方的安裝腳本自動安裝:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用國內的daocloud一鍵安裝命令:

curl -sSL https://get.daocloud.io/docker | sh

手動安裝參照上面鏈接,安裝完之后使用查看版本命令或者嘗試下載鏡像,測驗安裝成功

在這里插入圖片描述

下載鏡像測驗:

在這里插入圖片描述

在這里插入圖片描述

看到hello-world說明鏡像下載成功了,

配置阿里云鏡像加速器:

? 我覺得對于學生,或者跟我這樣剛作業沒多久的,買一個自己的云服務器是很有幫助的,任何事情都在自己的服務器上操作一遍實體,無論是增強記憶性,還是對于自己學習理解,都是很有幫助的,實踐才是硬道理,阿里云新用戶專享99一年,1核2G的,用來學習,做demo完全ok的,

在這里插入圖片描述

配置加速:

? 在阿里云的管理平臺找到容器與鏡像服務,點鏡像加速器,有指令介紹的,

在這里插入圖片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://9ojmf3wg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

到此,docker就算配置好了,下面介紹一下常用命令

常用命令:

幫助命令:
docker -v  #查看版本
docker -info  #顯示docker的系統資訊
docker <命令> --help #查看某個命令的幫助檔案 
鏡像命令:
docker images #查看已經下載的鏡像串列
docker search ..#去鏡像倉庫搜索對應鏡像源
docker pull ..#下載鏡像
docker rmi <id>	#洗掉鏡像(洗掉鏡像前得保證該鏡像沒有創建的容器保存,否則提示先去洗掉容器)

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

容器命令:
docker pull #下載鏡像
docker run  #新建容器并啟動
docker ps #查看正在運行的容器串列,-a查看所有容器串列包括停止運行的
docker stop <id> #停止容器
docker start <id> #運行容器
docker restart <id> #重啟容器
docker rm <id> #洗掉容器

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

關于RUN方法的流程圖:

在這里插入圖片描述

常用的其他命令:
docker cp 容器id:容器內路徑 主機目的路徑 #檔案拷貝到本地
docker exec -it 容器id /bin/bash  #進入容器內部
docker attach 容器id #進入容器內部
#兩個進入容器內部命令的區別,exec:開啟新的終端,進去操作,attach:進入正在運行的終端操作
docker inspect 容器id #查看鏡像的元資料

docker login  #登錄遠程倉
docker push  #推送到遠程倉
docker pull  #從遠程倉下拉
docker commit #打包鏡像(一般現在都用dockerfile)
#文章末尾附上命令葵花寶典
登錄dockerHub,推送跟下拉鏡像:

1、先去dockerHub上面注冊賬號:

在這里插入圖片描述

2、創建一個倉庫:

在這里插入圖片描述

3、在服務器上登錄遠程倉,需要輸入賬號密碼,succeed代表成功
在這里插入圖片描述

4、push鏡像到遠程倉庫

5、pull遠程倉的鏡像到本地

使用docker版rabbitmq實體

1、下載并啟動rabbitmq(直接用run指令,前面有流程圖說明)

在這里插入圖片描述

-d 表示后臺啟動,–name 別稱,-p 是埠映射(宿主機埠:容器埠) 最后是鏡像源名稱:版本標簽,rabbitmq默認埠是5672,15672,這邊映射到服務器的5673以及15673埠,如果是在阿里云服務端操作的,要去設立安全組開放埠,

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

ok,設定好之后,linux系統開放防火墻埠的指令也可以記住一下:

firewall-cmd --zone=public --add-port=8010/tcp --permanent #開放8010埠
systemctl restart firewalld.service #重啟防火墻
#如果開放失敗,先檢查防火墻是否啟動

這樣,docker版本的rabbitmq就已經部署好了,是不是很簡單,真香警告,我們可以測驗一下

在這里插入圖片描述

我們可以通過阿里云ip訪問rabbitmq管理平臺測驗下是否正常

在這里插入圖片描述

登錄進去看看管理平臺,這里測驗可能就需要一些rabbitmq的demo知識,網上很多,推薦一個:

在這里插入圖片描述

推薦的rabbitmq測驗demo:https://blog.csdn.net/wjg8209/article/details/107203082,我們跳過他的安裝,直接到測驗代碼,交換方式有很多種,我這也列出一種topic形式的交換方式,出處找到了,我做了些標注,https://blog.csdn.net/a745233700/article/details/89681801:

提供者代碼:
package com.upload.util;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class SentTopic {

    private static final String EXCHANGE_NAME = "topic_logs";

    /**
     *  MQdemo TOPIC路由型別方式,可以指定任意路由鍵發送訊息 		https://blog.csdn.net/a745233700/article/details/89681801
     * @author yxb
     * @param args
     */
    public static void main(String[] args) {
        Connection connection = null;
        Channel channel = null;

        try {
            //建立連接和通道
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("");//你的服務器ip
            //factory.setHost("");
            factory.setPort(5673);
            connection = factory.newConnection();
            channel = connection.createChannel();

            //宣告路由器和路由器型別
            channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.TOPIC);

            //定義路由鍵和訊息
            String routingKey = "cron.critical";//可以設定特定的任意路由鍵,接收方指定路由鍵接收特定訊息
            String message = "A critical cron error";

            //發布訊息
            channel.basicPublish(EXCHANGE_NAME,routingKey,null,message.getBytes("UTF-8"));
            System.out.println("sent message -- "+routingKey+":"+message);

        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e){
            e.printStackTrace();
        }finally {
            if (connection!=null){
                try {
                    connection.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

消費者代碼:
package com.upload.util;

import com.rabbitmq.client.*;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class RecvTopic {
    private static final String EXCHANGE_NAME = "topic_logs";

    /**
     * MQdemo TOPIC路由型別方式,可以指定任意路由鍵接收訊息 https://blog.csdn.net/a745233700/article/details/89681801
     * @author yxb
     * @param args
     */
    public static void main(String[] args) throws IOException, TimeoutException {
        //建立連接和通道
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("");//你的服務器ip
        //factory.setHost("");
        factory.setPort(5673);
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        //宣告路由器和路由器型別
        channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.TOPIC);
        String queueName = channel.queueDeclare().getQueue();

        //指定接收某類路由鍵的資訊
        String bingingKeys[]={"*.critical","kern.*"};//指定路由鍵接收特定的某些指令資訊,#代表接收所有的資訊,可指定多個{"1","2"}

        for (String bindingKey : bingingKeys){
            channel.queueBind(queueName,EXCHANGE_NAME,bindingKey);
        }
        System.out.println("waiting for messages . To exit press CTRL + C");
        System.out.println("接收端正在等待訊息...");
        //監聽訊息
        Consumer consumer = new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                String message = new String(body,"UTF-8");
                System.out.println("接收到的訊息/recvTopic message--"+envelope.getRoutingKey()+":"+message);
            }
        };
        channel.basicConsume(queueName,true,consumer);
    }
}

我跑起來測驗一下:

我先跑起來消費者,監聽佇列資訊:

在這里插入圖片描述

我們到rabbitmq管理平臺看看:

在這里插入圖片描述

可以看到我們有一個連接數,一條通道,一個佇列,一個消費者,說明我們消費者監聽佇列成功,我們再測驗提供者發送訊息能否給消費者監聽到:

在這里插入圖片描述

在這里插入圖片描述

到此,簡單的rabbitmq服務就運作起來了,所以說,使用docker除了打包發布等,專案中使用到很多類似組件也是很方便部署安裝跟呼叫,redis、mysql、nginx等等,都可以仿照這種方式部署,很香的,

學到這,基本上就可以算docker入門級別了,因為這些都是基礎知識,只能說明你了解docker,會簡單應用了,但企業用起來還有幾個關鍵知識,學會了才算剛畢業,大神說的,我也是小小學者hhhhhhh,但我實踐了才會總結,敲熟了才好說話,

后面還有一些知識學完就差不多了,可以說這才是重點:

  • 容器資料卷
  • docker網路原理
  • IDEA整合docker
  • dockerfile
  • docker Compose
  • docker Swarm
差不多就這些,我也沒學完哈哈哈哈,我是邊學邊敲邊分享的,學了一大部分了,快完結了,但是到這里是一個節點吧,最后先附上一段怎么把springboot專案打包成一個docker鏡像,別人一拿到這個鏡像就可以跑起你的專案,無需再部署任何環境配置,這玩意比較吸引人吧hhhh,

前提準備:

  • 安裝好docker
  • 測驗過任何一個demo,類似于上面的mq,這些玩意真的是要自己實操的,不然學起來我自己感覺我賊沒勁,搞不好一段時間就忘記了,
  • 準備好一個跑得動的springboot專案,測驗的話,簡簡單單就行,寫個controller也行,你有現成的專案也行,

1、打包專案jar包

在這里插入圖片描述

2、撰寫Dockerfile

這里可以下載一個idea插件,可以高亮,也可以連接遠程等

在這里插入圖片描述

撰寫Dockerfile:

在這里插入圖片描述

3、上傳到服務器,撰寫好之后上傳jar包跟Dockerfile到服務器
在這里插入圖片描述

4、創建鏡像命令

在這里插入圖片描述

在這里插入圖片描述

docker build -t yxb666 .  #創建鏡像命令,注意末尾有個“.”

5、我們跑起來!

在這里插入圖片描述

docker run -d --name yxb6666 -p 8080:8080 yxb666:latest

6、postman測驗

在這里插入圖片描述

測驗介面成功!!!說明我們已經打包好了專案為一個docker鏡像,測驗結束,完美,,,

就先到這把,進階版的,我悟透了,敲熟悉了再分享一下,如果有人覺得上面很多內容熟悉,沒錯!!!!!!

我也是學別人的,給大家推薦up主,狂神說java!!!公眾號搜索《狂神說》

b站搜索“狂神說java”有很多視頻,我覺得是很好的,我學的最舒服的一個

總之,實踐才是最重要的!!!!!動手最關鍵

等我更新,贊一下的人最牛逼了,漲薪翻倍,可以關注狂神,也順帶關注我這樣子,hhhh…

寶典:

docker 常用命令:

attach Attach local standard input, output, and error streams to a running container #當前shell下 attach連接指定運行的鏡像

build Build an image from a Dockerfile # 通過Dockerfile定制鏡像

commit Create a new image from a container’s changes #提交當前容器為新的鏡像

cp Copy files/folders between a container and the local filesystem #拷貝檔案

create Create a new container #創建一個新的容器

diff Inspect changes to files or directories on a container’s filesystem #查看docker容器的變化

events Get real time events from the server # 從服務獲取容器實時時間

exec Run a command in a running container # 在運行中的容器上運行命令

export Export a container’s filesystem as a tar archive #匯出容器檔案系統作為一個tar歸檔檔案[對應import]

history Show the history of an image # 展示一個鏡像形成歷史

images List images #列出系統當前的鏡像

import Import the contents from a tarball to create a filesystem image #從tar包中匯入內容創建一個檔案系統鏡像

info Display system-wide information # 顯示全系統資訊

inspect Return low-level information on Docker objects #查看容器詳細資訊

kill Kill one or more running containers # kill指定docker容器

load Load an image from a tar archive or STDIN #從一個tar包或標準輸入中加載一個鏡像[對應save]

login Log in to a Docker registry #登錄到Docker遠程倉庫

logout Log out from a Docker registry #從Docker遠程倉庫注銷

logs Fetch the logs of a container #獲取容器的日志

pause Pause all processes within one or more containers #暫停一個或多個容器中的所有行程

port List port mappings or a specific mapping for the container #列出容器的埠映射或特定映射

ps List containers #串列容器

pull Pull an image or a repository from a registry #從遠程倉庫中提取影像或存盤庫

push Push an image or a repository to a registry #將影像或存盤庫推到遠程倉庫

rename Rename a container #重命名一個容器

restart Restart one or more containers #重新啟動一個或多個容器

rm Remove one or more containers #洗掉一個或多個容器

rmi Remove one or more images #洗掉一個或多個鏡像

run Run a command in a new container #啟動一個新容器

save Save one or more images to a tar archive (streamed to STDOUT by default) #將一個或多個鏡像保存到tar歸檔檔案(默認情況下流化到STDOUT)將一個或多個影像保存到tar歸檔檔案(默認情況下流化到STDOUT)

search Search the Docker Hub for images #在Docker Hub中搜索鏡像

start Start one or more stopped containers #啟動一個或多個已停止的容器

stats Display a live stream of container(s) resource usage statistics #顯示容器資源使用統計資料的實時流

stop Stop one or more running containers #停止一個或多個正在運行的容器

tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE #創建一個參考SOURCE_IMAGE的標記TARGET_IMAGE

top Display the running processes of a container #顯示容器正在運行的行程

unpause Unpause all processes within one or more containers #在一個或多個容器中取消暫停所有行程

update Update configuration of one or more containers #更新一個或多個容器的配置

version Show the Docker version information #顯示Docker版本資訊

a live stream of container(s) resource usage statistics #顯示容器資源使用統計資料的實時流

stop Stop one or more running containers #停止一個或多個正在運行的容器

tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE #創建一個參考SOURCE_IMAGE的標記TARGET_IMAGE

top Display the running processes of a container #顯示容器正在運行的行程

unpause Unpause all processes within one or more containers #在一個或多個容器中取消暫停所有行程

update Update configuration of one or more containers #更新一個或多個容器的配置

version Show the Docker version information #顯示Docker版本資訊

wait Block until one or more containers stop, then print their exit codes #阻塞直到一個或多個容器停止,然后列印它們的退出代碼

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/203718.html

標籤:其他

上一篇:MSTP、LACP、VRRP、DHCP、NAT綜合實驗技術檔案

下一篇:LeetCode--1225. 報告系統狀態的連續日期

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more