主頁 > 移動端開發 > CloudStack+KVM 虛擬機部署測驗詳細流程

CloudStack+KVM 虛擬機部署測驗詳細流程

2020-10-11 08:37:08 移動端開發

目錄

基本介紹

部署準備

開始部署

1.查看并修改虛擬機網路

2.創建manager節點

2.配置manage節點

2.克隆為agent節點

3.配置NFS服務

4.安裝MySQL服務

5.設定網路橋接

6.安裝CloudStack

(1)網路源

(2)本地源

7.配置CloudStack

8.創建資源域

9.注冊ISO,添加實體,創建模板

可能遇到的問題


基本介紹

本文旨在介紹如何在本機虛擬機里部署一套CloudStack環境的測驗流程,包括一臺管理節點(manager)和一臺計算節點(agent),其中,manager節點會搭建作為二級存盤的NFS服務,agent會搭建用于鏡像下載的nginx服務器,

本文使用KVM創建虛擬機,通過libvirtd管理虛擬機,

最后一個部分,是常見的問題與解決方案,會持續更新一段時間,有問題可以自行去尋找,

部署準備

軟體安裝:

VMWare Workstation,XShell

資源下載:

CentOS-7-x86_64-Minimal-1810.iso //系統鏡像

cloudstack-common-4.13.1.0-1.el7.x86_64.rpm

cloudstack-management-4.13.1.0-1.el7.x86_64

cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm

systemvmtemplate-4.11.3-kvm.qcow2.bz2

本文所用所有資源的百度云分享鏈接:https://pan.baidu.com/s/1AiuZUF5JvudgIgFjc_8j4Q 提取碼:oy3h

開始部署

1.查看并修改虛擬機網路

首先,打開Wmware Workstation,選擇選單欄“編輯”->虛擬網路編輯器,查看VMnet8的子網地址,

每臺機器VMnet8被分配的子網地址都不相同,但在每個網段中,本機都默認為1,網關都默認為2,

以本機“192.168.100.0”網段為例,在該網段中,默認本機的IP地址為“192.168.100.1”,默認網關的IP地址為“192.168.100.2”,

而若是“192.168.67.0”網段,則默認本機的IP地址為“192.168.67.1”,默認網關的IP地址為“192.168.67.2”,

請注意并修改后續操作中IP地址,以保證在VMnet8的網段中,

若想更改網段,可以點擊右下角“更改設定”,以管理員權限打開虛擬網路編輯器,修改左下角子網IP,

默認DHCP分配IP范圍為128-254,可以點擊“DHCP設定”調整,本文調整如下,開放地址范圍為192.168.100.100-192.168.100.254,

綜上,本機虛擬網路相關的資訊如下:

地址范圍:192.168.100.100-192.168.100.254
網關:192.168.100.2
子網掩碼:255.255.255.0

2.創建manager節點

本文先創建manager節點虛擬機,安裝必要的軟體后,會克隆該虛擬機作為agent節點,再分別部署各自節點,

本文manager節點IP設定為192.168.100.100,agent節點IP設定為192.168.100.101,可自行修改為其他,但注意必須在DHCP范圍內,

在VmWare Station 中新建虛擬機,在新建向導中依次選擇“典型”、“稍后安裝作業系統”、“Linux”、“CentOS 7 64位”,

命名該虛擬機為Manager,避免混淆,

磁盤容量為默認20G足可,在最后一步中點擊“自定義硬體”,按下圖配置,

Manager節點推薦記憶體為2G,

處理器內核2顆,開啟Intel VT-x/EPT,

CD驅動器加載CentOS的iso鏡像,并確定已勾選啟動時連接,

再洗掉多余的聲卡和列印機硬體,

點擊“關閉”并點擊“完成”,

再次編輯該虛擬機設定,點擊左下角添加,添加硬碟,

添加新硬碟

一路點“下一步”,最后完成新硬碟添加,

啟動虛擬機,開始鏡像安裝,點擊虛擬螢屏,按上下鍵選擇“Install CentOs 7”,進入可視化安裝界面,

第一步,選擇中文,

選擇“中文”

點擊“繼續”,等待依賴檢索完成,依次配置“安裝位置”、“網路和主機名”,

配置“安裝目標位置”
配置“網路和主機名”

選擇“IPv4 設定”,選擇“手動分配,點擊"Add”,

添加靜態IP地址“192.168.100.100”,子網掩碼“255.255.255.0”,網關“192.168.100.2”,

請根據自己VMnet8的實際網段與自己設定的manager節點靜態IP進行修改,

在下方DNS服務器輸入阿里DNS服務器223.5.5.5,

如下圖所示,點擊“保存”和“完成”,

配置“ens33”

點擊“開始安裝”,

安裝中

在安裝時,設定ROOT密碼,本文設定為12345,若密碼過于簡單,點擊兩次完成也可以完成設定,

安裝完成后,重啟,

2.配置manage節點

打開XShell,新建會話,

點擊“用戶身份驗證”,輸入root和ROOT密碼,

保存并連接,驗證主機密鑰,選擇“接受并保存”,

在XShell中完成以下配置,

(1)設定IP映射

設定后可以直接通過Hostname,訪問到對應節點,

復制一下指令到XShell會話框中,按回車執行,

vi /etc/hosts

在該檔案新的一行中插入以下內容:

192.168.100.100 manager
192.168.100.101 agent

小提示

按I鍵進入INSERT模式,

按ESC,輸入“:wq”保存并退出,輸入“:q!"不保存退出,

按ESC,按兩下D洗掉游標所在行,

(2)關閉防火墻

systemctl disable firewalld
systemctl stop firewalld

然后設定selinux為permissive模式

修改config檔案

vi /etc/selinux/config 

找到selinx并改成

SELINUX=permissive

重啟生效

reboot

查看selinux

getenforce 

(3)時區設定(非必要)

timedatectl set-timezone  Asia/Shanghai

查看時區

timedatectl

(4)安裝EPEL

yum -y install epel*

重建本地倉庫快取

yum clean all && yum makecache

安裝VIM,用以編輯檔案,

yum -y install vim

安裝lrzsz,用以向虛擬機發送檔案,

yum -y install lrzsz

(5)安裝時間同步模塊

yum -y install chrony

修改組態檔

vim /etc/chrony.conf

將服務器修改為阿里云的時間同步服務器

找到以下四行

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

修改為

server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst

重啟chronyd服務

systemctl restart chronyd

(5)安裝NFS服務

yum -y install nfs-utils

編輯組態檔

vim /etc/sysconfig/nfs

取消如下項的注釋,其中,RQUOTAD_PORT需要手動添加,

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

啟動服務并設定開機啟動,

systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs
systemctl start nfs

查看新增硬碟

fdisk -l
新增磁盤/dev/sdb

格式化硬碟,建立ext4檔案系統,“Process anyway?”選擇“y”,

mkfs.ext4 /dev/sdb

至此,兩節點的通用配置已完成,

2.克隆為agent節點

關閉manager節點,在庫中,右鍵manager節點,選擇“管理”->“克隆”,進入克隆虛擬機向導,

依次選擇“克隆當前狀態”、“創建完整克隆”,命名為“agent”,然后點擊完成,

由于克隆后agent節點IP與manager沖突,建議先在虛擬機內部修改完靜態IP地址后,再通過XShell配置,

開啟agent虛擬機,輸入賬戶root,密碼12345,

修改host名

vim /etc/hostname

修改manager為agent

修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

將IPADDR修改為192.168.100.101,修改后如下,

重啟虛擬機

reboot

在XShell中,創建新會話,名稱為“agent”,主機為192.168.100.101,賬號為root,密碼為12345,

在XShell的會話中完成后續配置,

3.配置NFS服務

前面已經配置過檔案,此步驟只需設定共享目錄,請注意各個操作與其操作節點,避免混淆,

manager節點

創建掛載點

mkdir -p /export/secondary

硬碟掛載

 echo "/dev/sdb  /export/secondary  ext4 defaults 0 0"  >> /etc/fstab

快速掛載

mount -a

查看掛載

df -h

結果如下

設定共享目錄

vim /etc/exports

添加

/export/secondary *(rw,async,no_root_squash,no_subtree_check)

重新匯入共享目錄配置

exportfs -a

agent節點

創建掛載點

mkdir -p /export/primary

硬碟掛載

echo "/dev/sdb  /export/primary  ext4 defaults 0 0"  >> /etc/fstab

快速掛載

mount -a

設定共享目錄

vim /etc/exports

添加

/export/primary *(rw,async,no_root_squash,no_subtree_check)

重新匯入共享目錄配置

exportfs -a

驗證共享

manager 節點查看 agent的共享目錄

showmount -e agent

agent 節點查看 manager 的共享目錄

showmount -e manager

4.安裝MySQL服務

manager節點

yum -y install mariadb-server mariadb

編輯 mariadb 組態檔

vim /etc/my.cnf

在mysqld 模塊下加入

innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
bind-address = 0.0.0.0

啟動mariadb 并設定為開機啟動

systemctl enable mariadb
systemctl start mariadb

執行資料庫初始化安全操作

mysql_secure_installation

初始未設定密碼按回車跳過,選擇設定密碼,設定為12345,移除匿名用戶,不屏蔽遠程登錄等,其他按回車選擇默認,

賦予 root 遠程登錄權限

請注意并修改下方操作中的密碼為自己設定的密碼

mysql -uroot -p12345 -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '12345' WITH GRANT OPTION";

5.設定網路橋接

agent節點

yum -y install net-tools bridge-utils

編輯網卡橋接檔案 cloudbr

vim /etc/sysconfig/network-scripts/ifcfg-cloudbr0

修改后內容如下,靜態IP根據自己實際情況修改,

TYPE=Bridge
BOOTPROTO=none
DEVICE=cloudbr0
ONBOOT=yes
IPADDR=192.168.100.101
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=223.5.5.5
STP=yes

設定網卡檔案

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改后如下

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ad4d6e67-ae59-4a3c-9270-7045700517cd"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=cloudbr0

重新啟動網路服務

systemctl restart network

查看 網橋 和路由

brctl show route -n

至此,基本環境安裝已經完成,建議拍攝快照,以免后期配置錯誤,功虧一簣,

6.安裝CloudStack

(1)網路源

manager和agent節點

配置網路源檔案,兩臺節點配置相同

vi /etc/yum.repos.d/cloudstack.repo

添加

[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos7/4.13/
enabled=1
gpgcheck=0

manager節點

yum -y install cloudstack-management

agent 節點

yum -y install cloudstack-agent

(2)本地源

官方下載地址:

http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-management-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-common-4.13.1.0-1.el7.x86_64.rpm

本文提供的百度云里下載,

本文使用lrzsz進行檔案發送,若遇問題,也可以使用WinSCP等其他軟體發送,

manager節點

將cloudstack-common和cloudstack-management兩個rpm檔案,分別拖入XShell會話框,發送給虛擬機,

發送中

執行下述指令進行本地安裝,

yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-management-4.13.1.0-1.el7.x86_64.rpm

安裝程序或以后使用程序中,有任何問題,可以通過日志查看,

tail -f /var/log/cloudstack/management/management-server.log

初始化資料庫,創建新用戶cloud,

最后,root:12345為root賬號及root密碼,密碼不同請修改,

cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:12345

啟動management

cloudstack-setup-management

agent 節點

將cloudstack-common和cloudstack-agent兩個rpm檔案,分別拖入XShell會話框,發送給虛擬機,

執行下述指令進行本地安裝,

yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm 

manager節點

安裝KVM模板

在二級存盤中安裝KVM模板,以下兩種方式二選一

a.網路源安裝

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2  \
-h kvm -F

b.本地源

官方地址:

http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2

本文提供的百度云里下載,

同上述程序,拖入會話即可,

注意:當前檔案夾是否為root,不是請先“cd /root”,或者修改下述代碼中路徑,

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt  \
-m /export/secondary \
-f /root/systemvmtemplate-4.11.3-kvm.qcow2.bz2 \
-h kvm –F

agent 節點

配置libvirt

編輯QEMU VNC組態檔

vim /etc/libvirt/qemu.conf

取消注釋

vnc_listen="0.0.0.0"

配置/etc/libvirt/libvirtd.conf檔案

vim /etc/libvirt/libvirtd.conf

取消注釋或添加

listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0

小提示

可以按下ESC,使用“/+搜索詞”,如“/listen”進行搜索,

配置/etc/sysconfig/libvirtd檔案

vim /etc/sysconfig/libvirtd

取消注釋

LIBVIRTD_ARGS="--listen"

重啟libvirtd 并設定為開機自啟

systemctl restart libvirtd
systemctl enable libvirtd

請注意,這一步配置錯導致libvirt服務啟動失敗,會導致后續創建資源域時無法添加主機,解決方法看文章最后的QA,

7.配置CloudStack

默認訪問埠為manager節點IP的8080埠,

打開瀏覽器,訪問http://192.168.199.100:8080/client/,

默認賬號為admin,默認密碼為password,選擇語言為“簡體中文”,登陸,

初次登陸選擇左下角“我以前使用過”,

選擇左下角“全域設定”,搜索并修改以下設定,

cpu.overprovisioning.factor 2.0               //CPU超配
mem.overprovisioning.factor 2.0               //記憶體超配,即2GB變4GB
secstorage.allowed.internal.sites 0.0.0.0/0   //從該網段下載ISO或模板,后期搭建ngix服務器可修改
management.network.cidr 192.168.100.0/24      //管理網段,可不修改,但會有警報資訊

在manager節點中,重啟cloudsatck-management服務

systemctl restart cloudstack-management

重啟時間較長,請耐心等候,可以觀察日志檔案,了解啟動行程,

tail -f /var/log/cloudstack/management/management-server.log

8.創建資源域

重新登錄,選擇左下角“基礎架構”,選擇“資源域”,點擊工具列“+ 添加資源域”,

配置如下即可,

請注意,“添加主機”這一步,是添加計算節點作為集群的默認主機,而不是管理節點,

點擊“啟動資源域”,等待創建完成,然后啟動即可,

9.注冊ISO,添加實體,創建模板

如下,等待系統VM創建成功后,開始后續步驟,

agent節點

創建一個NGINX 服務器當作鏡像下載站,

安裝 nginx 軟體

yum -y install nginx

編輯 nginx 組態檔

vim  /etc/nginx/nginx.conf 

在access_log /var/log/nginx/access.log main一行后加上

autoindex on;# 顯示目錄
autoindex_exact_size on;# 顯示檔案大小
autoindex_localtime on;# 顯示檔案時間

清空 /usr/share/nginx/html 目錄

小心謹慎

cd /usr/share/nginx/html
rm -rf *

將準備好的ISO鏡像放進去,本文使用的是虛擬機的鏡像,直接拖入會話框,傳送至/usr/share/nginx/html目錄,

重啟nginx 服務,設定為開機啟動

systemctl enable nginx
systemctl start nginx

可通過瀏覽器直接訪問agent節點IP地址查看,

注冊ISO

選擇左側“模板”->選擇視圖“ISO”,點擊工具列“注冊ISO”,

依次填寫所有資訊,URL可以從192.168.100.101網頁中復制鏈接,

點擊“確定”,點擊該ISO,點擊“資源域”,查看狀態,

安裝完成后,如下所示,

添加實體

依次選擇左邊“實體”->工具列“添加實體”,

選擇ISO創建,

選擇剛剛注冊的ISO,

計算方案選擇Medium,分配記憶體為1GB,可在“服務方案”中修改,

其余一律默認即可,最后填寫資訊,

啟動VM,等待VM創建并運行,

選擇該虛擬機快速查看->查看控制臺,

在彈出的控制臺網頁中,安裝ISO即可,

安裝程序同虛擬機大致一樣,不同的是網路只需打開即可,不需要設定靜態IP和主機名,

安裝完成后,重啟,

至此,一臺可以用于生產的實體已經部署完成,后續可以安裝其他生產環境,本文僅做測驗,安裝系統即可,

創建模板

接下來是,將安裝有生產環境的示例創建模板,用以創建更多實體,

關閉實體,“快速查看”->停止,

等待停止后,點擊“查看卷”,

選擇“快速查看”->“創建模板”,

填寫資訊后,創建即可,

以后添加實體時,選擇該模板即可創建一模一樣的實體,

可能遇到的問題

Q:安裝軟體時一直切換鏡像,最后也不下載,這是怎么回事?

A:有兩種可能

1.沒有配置DNS服務器,

沒有配置網橋的話,配置網路

vi /etc/sysconfig/network-scripts/ifcfg-ens33

添加DNS服務器

DNS1=223.5.5.5

配置網橋了的話,在網橋檔案里添加DNS,

vi /etc/sysconfig/network-scripts/ifcfg-cloudbr0

2.網關配置錯誤

本文使用的VMnet8網段為192.168.100.0-192.168.100.254網段,其中192.168.100.2為虛擬網關地址,每個人的網段號不同,請根據自己的網段查看網關是否正確,

查看組態檔,注意其中GATEWAY欄位是否正確,

vi /etc/sysconfig/network-scripts/ifcfg-ens33

Q:管理節點重啟后,CloudStack 的WEB UI上不去,這是怎么回事?

A:一般是Server還在啟動中,稍等即可,

可以通過查看日志的方式排除問題,

tail -f /var/log/cloudstack/management/management-server.log

Q:系統VM創建失敗,日志顯示“can't create development for vm”,這是為什么?

A:這可能有兩個原因造成:

1.agent節點硬體資源不足

本文建議的4GB記憶體加2核,再加上2倍超配,經多次試驗完全能滿足要求,

2.沒有安裝KVM模板

如果日志中報錯“Not such file or directory”,然后指向/export/secondary里的template檔案夾,那么就是這個原因,按照第6部中的“安裝KVM模板”步驟完成即可,

Q:日志報資料庫中列錯誤,怎么處理?

A:按照第6步中,初始化資料庫的步驟,重新創建用戶,安裝management,

Q:資源域創建最后一步添加主機時報錯,說“Unable to add the host”,查找management的日志,找到以下錯誤,怎么解決?

A:這是在agent節點配置libvirt時出現了問題,建議先檢查自己在第六步配置libvirt時出現了什么問題,

有快照建議恢復到配置之前,

無快照,按照以下方法重新安裝libvirt,

卸載libvirt及其依賴

yum remove libvirt*

然后按照第六步中的程序重新安裝,

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

標籤:其他

上一篇:一篇文章帶你搞定 Ubuntu 中打開 Pycharm 總是卡頓崩潰

下一篇:Linux下nginx的yum安裝、原始碼安裝、OpenResty的原始碼安裝

標籤雲
其他(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