吾爱收录网_站长导航_免费网站目录
免费加入

袁卓豪's 博客 - 个人的技术分享 袁卓豪's 博客 - 个人的技术分享 袁卓豪's 博客 - 个人的技术分享

热度:

编号:10649

分类:博客日志

加入:2024-04-08 17:06:54

点入:2024-04-08 17:06:54

备案:粤ICP备2022132627号

名称:袁卓豪

SEO更新时间
2024-04-08T17:07:06

百度权重:百度权重0
百度移动:百度移动0
360 权重:360权重0
搜狗权重:搜狗权重0
袁卓豪's 博客 - 个人的技术分享

访问网站

https://www.zhuohao.tech

举报/报错
seo综合信息
SEO信息 百度来访IP:- | 移动端来访IP:- | 出站链接:0 | 站内链接:0
IP网速: IP地址:119.23.222.236 [中国广东深圳 阿里云] | 网速:669毫秒
ALEXA排名 世界排名:- | 预估IP:- | 预估PV:-
备案信息 粤ICP备2022132627号 | 名称:袁卓豪 | 已创建:4年5月29天
收录 百度 360 搜狗 谷歌
查询 0 0 0 0
电脑关键词 手机关键词 页面友好 首页位置 索引 近期收录
0 0 电脑端优秀 - 0 0
协议类型HTTP/1.1 200 OK 页面类型 text/html 服务器类型 nginx/1.18.0 (Ubuntu) 是否压缩是 原网页大小271347 压缩后大小51186 压缩比81.14%
网站快照

袁 卓 豪 s 博 客 个 人 的 技 术 分 享 主 页 所 有 文 章 关 于 我 主 页 F l u t t e r M o v i e U I D e s i g n 2 0 1 9 1 0 2 1 这 个 D e m o 使 用 F l u t t e r 的 P a g e V i e w , A n i m a t e d B u i l d e r , H e r o , C l i p p e r 等 主 要 控 件 , 详 情 代 码 查 阅 g i t h u b 第 一 步 首 页 的 B a n n e r 使 用 P a g e V i e w 的 P a g e C o n t r o l l e r 配 合 A n i m a t e d B u i l d e r 实 现 滚 动 大 小 的 变 化 A n i m a t e d B u i l d e r 配 合 P a g e C o n t r o l l e r 的 代 码 如 下 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 A n i m a t e d B u i l d e r ( a n i m a t i o n : _ p a g e C o n t r o l l e r , b u i l d e r : ( B u i l d C o n t e x t c o n t e x t , W i d g e t w i d g e t ) r e t u r n C e n t e r ( c h i l d : S i z e d B o x ( h e i g h t : C u r v e s . e a s e I n O u t . t r a n s f o r m ( v a l u e ) * 2 2 0 . 0 , w i d t h : C u r v e s . e a s e I n O u t . t r a n s f o r m ( v a l u e ) * 4 0 0 . 0 , c h i l d : w i d g e t , ) , ) ; } , 第 二 步 使 用 H e r o 实 现 点 击 B a n n e r 的 图 片 动 画 跳 转 另 一 个 界 面 第 三 步 详 情 页 面 的 头 部 使 用 C l i p p e r 剪 切 圆 形 底 部 , 以 及 使 用 C u s t o m P a t i n e r 实 现 阴 影 部 分 C l i p p e r 的 实 现 代 码 如 下 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 c l a s s C i r c u l a r C l i p p e r e x t e n d s C u s t o m C l i p p e r @ o v e r r i d e b o o l s h o u l d R e c l i p ( C u s t o m C l i p p e r o l d C l i p p e r ) = > f a l s e ; } @ i m m u t a b l e c l a s s C l i p S h a d o w P a t h e x t e n d s S t a t e l e s s W i d g e t ) ; @ o v e r r i d e W i d g e t b u i l d ( B u i l d C o n t e x t c o n t e x t ) } c l a s s _ C l i p S h a d o w S h a d o w P a i n t e r e x t e n d s C u s t o m P a i n t e r ) ; @ o v e r r i d e v o i d p a i n t ( C a n v a s c a n v a s , S i z e s i z e ) @ o v e r r i d e b o o l s h o u l d R e p a i n t ( C u s t o m P a i n t e r o l d D e l e g a t e ) } F l u t t e r 展 开 全 文 > > 了 解 K o t l i n 的 协 程 2 0 1 9 0 5 0 6 K o t l i n 的 协 程 ( C o r o u t i n e ) 是 轻 量 级 的 线 程 ( T h r e a d ) , 它 可 以 解 决 各 种 异 步 , 阻 塞 问 题 。 比 如 在 A n d r o i d , 默 认 代 码 运 行 在 主 线 程 , 此 时 如 果 网 络 请 求 或 执 行 耗 时 操 作 , 则 会 阻 塞 主 线 程 , 出 现 A N R ( A p p l i c a t i o n N o t R e s p o n d i n g ) 。 而 协 程 还 有 一 个 优 势 是 不 会 消 耗 内 存 空 间 。 举 个 例 子 , 如 下 代 码 创 建 了 1 0 万 个 协 程 , 延 时 1 0 0 m s 后 打 印 , 可 以 快 速 地 执 行 和 创 建 协 程 。 1 2 3 4 5 6 7 8 f u n m a i n ( a r g s : A r r a y S t r i n g > ) = r u n B l o c k i n g } } 下 面 , 我 们 开 始 一 一 介 绍 和 了 解 协 程 。 一 个 场 景 有 一 个 s h o w U s e r I n f o 方 法 , 需 要 两 个 网 络 请 求 , 一 个 l o g i n 和 一 个 f e t c h U s e r I n f o 1 2 3 4 5 6 7 8 9 f u n s h o w U s e r I n f o ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) f u n l o g i n ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) f u n f e t c h U s e r I n f o ( u s e r I d : L o n g ) 使 用 回 调 方 法 在 l o g i n 和 f e t c h U s e r I n f o 添 加 一 个 入 参 c a l l b a c k 参 数 。 代 码 如 下 1 2 3 4 5 6 7 8 9 1 0 1 1 f u n s h o w U s e r O r d e r s ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) } } f u n l o g i n ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g , c a l l b a c k : ( U s e r ) U n i t ) f u n f e t c h U s e r I n f o ( u s e r I d : L o n g , c a l l b a c k : ( U s e r I n f o ) U n i t ) 这 种 方 法 带 来 的 问 题 是 无 法 控 制 网 络 请 求 , 比 如 取 消 请 求 等 等 。 它 们 执 行 完 销 毁 时 , 可 能 导 致 内 存 泄 露 问 题 。 使 用 R x J a v a 方 法 1 2 3 4 5 6 7 8 9 1 0 1 1 f u n s h o w U s e r O r d e r s ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) . s u b s c r i b e O n ( S c h e d u l e r s . i o ( ) ) . o b s e r v e O n ( A n d r o i d S c h e d u l e r s . m a i n T h r e a d ( ) ) . s u b s c r i b e } f u n l o g i n ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) : S i n g l e f u n f e t c h U s e r I n f o ( u s e r I d : L o n g ) : S i n g l e > 使 用 R x J a v a 方 法 解 决 使 用 回 调 方 式 的 问 题 , 虽 然 这 种 方 法 也 是 可 行 , 没 问 题 的 , 但 是 代 码 并 不 美 观 。 R x J a v a 使 用 链 式 编 程 , 可 能 回 出 现 嵌 套 代 码 情 况 。 使 用 K o t l i n 的 协 程 协 程 ( C o r o u t i n e ) 可 以 顺 序 地 编 写 代 码 风 格 , 把 耗 时 的 任 务 调 度 到 后 台 执 行 , 没 有 阻 塞 主 线 程 。 代 码 直 观 , 可 读 性 高 。 1 2 3 4 5 6 7 8 9 f u n s h o w U s e r I n f o ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) = G l o b a l S c o p e . l a u n c h ( D i s p a t c h e r s . M a i n ) v a l i n f o = w i t h C o n t e x t ( D i s p a t c h e r s . D e f a u l t ) s e t U s e r I n f o ( i n f o ) } s u s p e n d f u n l o g i n ( u s e r n a m e : S t r i n g , p a s s w o r d : S t r i n g ) s u s p e n d f u n f e t c h U s e r I n f o ( u s e r I d : L o n g ) 协 程 的 核 心 S u s p e n d 方 法 C o r o u t i n e C o n t e x t 和 C o r o u t i n e S c r o p e 协 程 的 构 建 S u s p e n d 方 法 S u s p e n d 方 法 : s u s p e n d 修 饰 的 方 法 , 表 示 执 行 耗 时 直 到 完 成 也 不 会 阻 塞 , 且 可 以 停 止 和 恢 复 。 s u s p e n d 方 法 可 以 被 其 他 s u s p e n d 方 法 或 协 程 调 用 。 1 2 3 s u s p e n d f u n d o B a c k g r o u n d T a s k ( p a r a m : I n t ) : I n t C o r o u t i n e C o n t e x t C o r o u t i n e C o n t e x t 是 用 于 提 供 协 程 启 动 和 运 行 时 需 要 的 信 息 。 它 是 一 个 S e t , 里 面 有 M a p 结 构 的 元 素 , 而 M a p 里 面 有 一 个 E l e m e n t , 每 个 E l e m e n t 有 一 个 K e y 与 之 对 应 。 C o r o u t i n e C o n t e x t 由 4 个 E l e m e n t 组 成 。 J o b : 协 程 的 唯 一 标 识 , 用 于 控 制 协 程 的 生 命 周 期 ( n e w , a c t i v e , c o m p l e i n g , c o m p l e t e d , c a n c e l l i n g , c a n c e l l e d ) C o r o u t i n e D i s p a t c h e r : 指 定 协 程 运 行 的 线 程 ( D e f a u l t , I O , M a i n , U n c o n f i n e d ) C o r o u t i n e N a m e : 指 定 协 程 的 名 称 C o r o u t i n e E x c e p t i o n H a n d l e r : 指 定 协 程 异 常 处 理 器 , 用 来 处 理 未 捕 获 的 异 常 J o b 启 动 一 个 协 程 后 , 会 返 回 一 个 J o b 对 象 , 它 是 协 程 的 唯 一 标 识 , 这 个 J o b 对 象 状 态 变 化 过 程 如 下 。 J o b 只 提 供 i s A c t i v e , i s C a n c e l l e d , i s C o m p l e t e d 三 个 属 性 判 断 协 程 的 状 态 。 C o r o u t i n e D i s p a t c h e r C o u r o u t i n e D i s p a t c h e r 可 以 指 定 协 程 运 行 的 线 程 , K o t l i n 内 置 4 个 线 程 , 分 别 用 D i s p a t c h e r s . M a i n , D i s p a t c h e r s . I O , D i s p a t c h e r s . D e f a u l t , D i s p a t c h e r s . U n c o n f i n e d 方 法 来 指 定 。 D i s p a t c h e r s . M a i n 不 同 平 台 表 达 不 同 主 线 程 , 比 如 A n d r o i d , 代 表 A n d r o i d 的 主 线 程 ( U I 线 程 ) 。 D i s p a t c h e r s . I O 适 合 执 行 I / O 任 务 , 它 是 一 个 共 享 线 程 池 。 D i s p a t c h e r s . D e f a u l t 默 认 的 线 程 , 通 知 适 合 执 行 C P U 密 集 计 算 的 任 务 , 它 和 I O 是 同 一 个 共 享 线 程 池 。 D i s p a t c h e r s . U n c o n f i n e d 这 种 情 况 比 较 特 殊 。 如 果 协 程 存 在 子 协 程 , 此 时 父 协 程 悬 挂 , 恢 复 时 父 协 程 的 线 程 是 子 协 程 的 线 程 。 例 子 : 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 f u n m a i n ( ) ) d e l a y ( 1 _ 0 0 0 ) p r i n t l n ( 当 前 线 程 : $ ) } } } / / 输 出 当 前 线 程 : m a i n 当 前 线 程 : k o t l i n x . c o r o u t i n e s . D e f a u l t E x e c u t o r C o r o u t i n e S c o p e C o r o u t i n e S c o p e 是 协 程 的 作 用 域 , 控 制 协 程 的 生 命 周 期 。 1 2 3 4 5 6 7 8 f u n m a i n ( ) T h r e a d . s l e e p ( 1 0 0 0 ) } 通 过 自 定 义 C o r o u t i n e S c o p e , 可 以 在 应 用 程 序 的 某 一 个 层 次 开 启 或 者 控 制 协 程 的 生 命 周 期 , 例 如 A n d r o i d , 在 V i e w M o d e l 和 L i f e c y c l e 类 的 生 命 周 期 里 提 供 了 C o r o u t i n e S c o p e , 分 别 是 V i e w M o d e l S c o p e 和 L i f e c y c l e S c o p e 。 协 程 的 构 建 启 动 一 个 协 程 需 要 3 个 东 西 C o r o u t i n e C o n t e x t , C o r o u t i n e S c o p e , C o r o u t i n e S t a r t C o r o u t i n e C o n t e x t C o r o u t i n e S c o p e C o r o u t i n e S t a r t 提 供 协 程 启 动 和 运 行 信 息 协 程 作 用 域 , 控 制 协 程 的 生 命 周 期 控 制 协 程 的 启 动 模 式 创 建 K o t l i n 提 供 两 个 方 法 , 就 是 调 用 C o r o u t i n e S c o p e 的 l a u n c h 和 a s y n c 方 式 。 l a u n c h 调 用 后 返 回 J o b 对 象 , 就 是 创 建 了 一 个 协 程 在 后 台 执 行 任 务 , 但 是 执 行 的 任 务 是 没 有 返 回 结 果 的 。 1 2 3 4 5 f u n C o r o u t i n e S c o p e . l a u n c h ( c o n t e x t : C o r o u t i n e C o n t e x t = E m p t y C o r o u t i n e C o n t e x t , s t a r t : C o r o u t i n e S t a r t = C o r o u t i n e S t a r t . D E F A U L T , b l o c k : s u s p e n d C o r o u t i n e S c o p e . ( ) U n i t ) : J o b l a u n c h 默 认 C o r o u t i n e C o n t e x t 是 E m p t y C o r o u t i n e C o n t e x t , 它 使 用 默 认 的 D i s p a t c h e r 。 默 认 C o r o u t i n e S t a r t 也 是 默 认 的 启 动 模 式 是 立 即 启 动 , 还 有 其 他 启 动 模 式 C o r o u t i n e S t a r t . L A Z Y , C o r o u t i n e S t a r t . A T O M I C 和 C o r o u t i n e S t a r t . U N D I S P A T C H E D 。 1 2 3 4 5 6 7 8 9 1 0 f u n m a i n ( a r g s : A r r a y S t r i n g > ) = r u n B l o c k i n g p r i n t l n ( f r o m r u n b l o c k i n g ) } / / 输 出 f r o m r u n b l o c k i n g f r o m l a u n c h c o r o u t i n e b o d y a s y n c 调 用 后 返 回 D e f e r r e d 对 象 , 它 可 以 返 回 执 行 任 务 的 结 果 。 1 2 3 4 5 f u n C o r o u t i n e S c o p e . a s y n c ( c o n t e x t : C o r o u t i n e C o n t e x t = E m p t y C o r o t u i n e C o n t e x t , s t a r t : C o r o u t i n e S t a r t = C o r o u t i n e S t a r t . D E F A U L T , b l o c k : s u s p e n d C o r o u t i n e S c o p e . ( ) U n i t ) : D e f e r r e d 调 用 a w a i t 方 法 等 待 返 回 的 结 果 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 f u n m a i n ( a r g s : A r r a y S t r i n g > ) = r u n B l o c k i n g v a l s e c o n d = a s y n c v a l t h i r d = a s y n c v a l r e s u l t = f i r s t . a w a i t ( ) + s e c o n d . a w a i t ( ) + t h i r d . a w a i t ( ) } p r i n t l n ( t i m e ) / / 7 秒 后 输 出 结 果 } s u s p e n d f u n f i r s t N u m b e r ( ) : I n t s u s p e n d f u n s e c o n d N u m b e r ( ) : I n t s u s p e n d f u n t h i r d N u m b e r ( ) : I n t 需 要 等 到 所 有 悬 挂 的 方 法 执 行 完 , 协 程 才 完 成 结 束 。 后 续 协 程 的 介 绍 暂 时 到 这 里 , 后 续 会 继 续 补 充 。 A n d r o i d K o t l i n C o r o u t i n e 展 开 全 文 > > R x J a v a 在 A n d r o i d 的 应 用 2 0 1 9 0 4 2 3 学 习 和 运 行 R x J a v a , 可 以 更 好 , 更 快 , 更 方 便 开 发 A n d r o i d 。 接 下 来 , 我 们 一 起 学 习 R x J a v a 的 基 础 知 识 。 学 习 R x J a v a 之 前 , 有 两 个 知 识 必 须 要 懂 响 应 式 编 程 响 应 式 编 程 是 一 种 基 于 事 件 驱 动 的 模 式 , 或 者 是 一 种 面 向 数 据 流 变 化 传 播 的 模 式 。 比 如 $ y = 2 x + b $ , $ y $ 的 值 变 化 要 随 着 $ x $ 和 $ b $ 的 值 变 化 而 变 化 , 在 R x J a v a 中 , 用 容 易 地 通 过 观 察 ( O b s e r v i n g ) $ x $ 和 $ b $ 的 值 变 化 , 从 而 实 时 地 更 新 $ y $ 的 值 。 线 程 线 程 是 执 行 完 整 或 小 段 代 码 的 单 元 。 系 统 会 自 动 分 配 执 行 时 间 给 线 程 。 在 A n d r o i d 中 , 主 要 有 两 种 类 型 线 程 : 主 线 程 ( U I 线 程 ) 和 后 台 线 程 主 线 程 是 运 行 所 有 A p p 执 行 U I 操 作 。 代 码 默 认 执 行 主 线 程 。 后 台 线 程 是 运 行 在 后 台 , 不 会 被 前 台 或 主 线 程 打 断 。 如 果 我 们 的 A p p 执 行 需 要 下 载 一 个 视 频 代 码 , 默 认 运 行 在 主 线 程 , 则 U I 界 面 会 阻 塞 , 界 面 出 现 A p p l i c a t i o n N o t R e s p o n s e ( A N R ) , 直 到 下 载 完 成 。 因 此 , 运 行 长 时 间 的 任 务 , 最 好 把 它 放 在 后 台 线 程 执 行 , 此 时 R x J a v a 可 以 快 捷 帮 助 我 们 解 决 该 问 题 。 R x J a v a R x J a v a 是 一 个 响 应 式 编 程 和 可 以 处 理 异 步 任 务 的 库 , 一 个 可 以 观 察 数 据 流 并 且 进 行 异 步 处 理 的 接 口 。 它 的 操 作 符 可 以 很 方 便 地 处 理 数 据 流 , 如 j u s t , m a p , f l a t M a p 等 等 。 R x J a v a 的 好 处 防 止 A p p 的 内 存 泄 露 简 化 的 代 码 处 理 线 程 的 同 步 问 题 简 单 方 便 地 处 理 异 常 得 心 应 手 地 切 换 线 程 在 R x J a v a 中 , 任 何 的 东 西 都 可 以 看 做 数 据 流 , 数 据 流 可 以 随 时 发 送 数 据 或 事 件 , 且 可 被 观 察 或 消 费 。 比 如 数 据 流 可 包 括 点 击 事 件 , 推 送 通 知 , 数 据 更 新 等 等 。 R x J a v a 的 核 心 O b s e r a b l e ( 可 观 察 者 ) 顾 名 思 义 , 它 可 以 被 观 察 的 , 它 有 点 类 似 发 送 器 , 可 以 不 断 发 送 数 据 或 者 事 件 。 只 有 在 订 阅 者 订 阅 了 才 开 始 发 送 数 据 。 可 以 无 数 次 发 送 数 据 。 可 以 永 不 停 止 地 发 送 数 据 。 O b s e r v e r ( 观 察 者 ) 它 可 以 观 察 和 接 收 来 自 可 观 察 者 ( O b s e r v a b l e ) 发 送 的 数 据 , 且 可 接 收 通 过 操 作 符 ( O p e r a t o r ) 处 理 的 数 据 。 例 子 : 两 个 人 在 交 谈 , 一 个 人 只 会 讲 英 文 , 一 个 人 只 会 听 中 文 , 当 他 们 交 流 时 , 需 要 一 个 翻 译 器 ( O p e r a t o r ) , 它 可 以 把 说 话 者 ( O b s e r a b l e ) 说 的 语 言 转 化 为 聆 听 者 ( O b s e r v e r ) 能 听 懂 的 语 言 。 观 察 者 ( O b s e r v e r ) 一 旦 订 阅 可 观 察 者 ( O b s e r v a b l e ) , 即 可 接 收 可 观 察 者 通 过 调 用 观 察 者 的 方 法 发 送 的 数 据 或 事 件 。 o n S u b s c r i b e 当 观 察 者 订 阅 时 被 可 观 察 者 调 用 。 o n N e x t 当 数 据 流 有 数 据 发 送 时 调 用 , 可 以 多 次 。 o n E r r o r 当 有 异 常 时 调 用 。 o n C o m p l e t e 当 任 务 结 束 时 调 用 。 O b s e r v e r 的 生 命 周 期 O b s e r v a b l e 和 O b s e r v e r 对 应 的 类 型 1 . F l o w a b l e 与 O b s e r v a b l e F l o w a b l e 和 O b s e r b a b l e 的 区 别 在 于 F l o w a b l e 支 持 背 压 。 解 释 背 压 , 比 如 一 个 场 景 O b s e r v a b l e 每 秒 发 送 1 0 0 个 数 据 , 而 O b s e r v e r 却 每 秒 处 理 1 0 个 数 据 , 这 次 O b s e r v e r 处 于 背 压 状 态 , 如 果 缓 冲 区 空 间 满 载 , 则 出 现 内 存 泄 露 ( O u t O f M e m o r y E x c e p t i o n ) 。 F l o w a b l e 有 5 个 策 略 处 理 背 压 状 态 。 B U F F E R 多 余 的 数 据 先 在 缓 冲 区 , 等 O b s e r v e r 忙 完 再 处 理 , 但 如 果 数 据 过 大 或 内 存 过 小 , 还 会 抛 出 O O M 。 D R O P 如 果 数 量 超 出 缓 冲 区 的 装 载 , 则 会 抛 弃 这 些 数 据 。 L A T E S T 只 处 理 最 近 的 数 据 , 其 余 数 据 将 会 抛 弃 。 E R R O R 如 果 数 据 数 量 超 出 限 制 , 则 会 抛 出 M i s s i n g B a c k p r e s s u r e E x c e p t i o n 。 M I S S I N G 不 做 任 何 策 略 , 数 据 不 会 被 抛 弃 或 缓 存 , 之 后 也 会 抛 出 M i s s i n g B a c k p r e s s u r e E x c e p t i o n 。 2 . S i n g l e 与 S i n g l e O b s e r v e r S i n g l e 只 会 发 送 一 次 数 据 或 调 用 o n E r r o r ( ) , 通 常 用 于 请 求 网 络 A P I 。 3 . C o m p l e t a b l e c o m . a n d r o i d . a p p l i c a t i o n a n d r o i d d e p e n d e n c i e s 管 理 依 赖 的 版 本 : 在 有 几 个 m o d u l e 项 目 中 , 有 很 多 依 赖 库 , 最 麻 烦 的 是 有 很 多 依 赖 库 版 本 号 冲 突 , 类 似 于 如 下 的 b u i l d . g r a d l e 文 件 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 a p p l y p l u g i n : c o m . a n d r o i d . a p p l i c a t i o n a n d r o i d b u i l d T y p e s P r o d u c t F l a v o u r s } d e p e n d e n c i e s 这 样 很 难 管 理 依 赖 库 的 版 本 , 解 决 的 办 法 是 在 g r a d l e 的 e x t 中 定 义 变 量 值 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 a p p l y p l u g i n : c o m . a n d r o i d . a p p l i c a t i o n a n d r o i d b u i l d T y p e s P r o d u c t F l a v o u r s } e x t d e p e n d e n c i e s 如 果 作 用 于 多 个 m o d u l e 项 目 中 , 可 以 在 t o p l e v e l 的 b u i l d 文 件 中 定 义 变 量 值 1 2 3 4 5 6 7 8 9 b u i l d s c r i p t a l l p r o j e c t s e x t 在 m o d u l e l e v e l 文 件 中 添 加 1 c o m . a n d r o i d . s u p p o r t : a p p c o m p a t v 7 : $ r o o t P r o j e c t . s u p p o r t L i b r a r y V e r s i o n 加 快 编 译 速 度 : 有 时 我 们 编 译 项 目 , 会 花 费 很 多 时 间 在 编 译 中 , 大 大 降 低 了 开 发 过 程 速 度 。 现 在 我 们 忽 略 硬 件 设 备 来 提 高 编 译 速 度 。 实 时 更 新 A n d r o i d S t u d i o 。 每 次 A n d r o i d S t u d i o 更 新 , 都 会 优 化 工 具 和 加 快 编 译 速 度 避 免 编 译 一 些 暂 时 不 需 要 的 资 源 文 件 , 可 以 在 m o d u l e l e v e l 的 b u i l d 文 件 中 定 义 f l a v o r 来 指 定 某 些 资 源 文 件 1 2 3 4 5 6 7 8 9 1 0 1 1 a n d r o i d . . . } } 如 果 不 使 用 C r a s h l y t i c s 报 告 , 可 以 停 止 使 用 , 加 快 编 译 速 度 1 2 3 4 5 6 7 8 9 a n d r o i d } } 避 免 使 用 动 态 的 版 本 号 来 管 理 依 赖 库 , 类 似 c o m . a n d r o i d . t o o l s . b u i l d : g r a d l e : 2 . + , 这 样 会 每 次 编 译 都 会 检 查 最 新 版 本 , 之 后 下 载 更 新 , 使 得 编 译 更 慢 如 果 你 网 络 本 身 慢 的 , 也 会 影 响 编 译 速 度 , g r a d l e 每 次 编 译 会 尝 试 使 用 网 络 资 源 的 依 赖 库 , 因 此 使 用 离 线 模 式 ( o f f l i n e m o d e l ) 。 这 个 可 以 在 首 选 项 ( P r e f e r e n c e ) B u i l d G r a d l e 中 设 置 , 这 里 不 详 细 写 。 优 化 和 瘦 身 A p p 如 果 使 你 的 A p p 更 小 , 则 你 可 以 使 用 s h r i n k i n g 来 瘦 身 的 A p p , 它 会 删 除 不 使 用 的 代 码 和 资 源 文 件 。 很 多 时 候 , 我 们 只 是 使 用 依 赖 库 的 某 些 功 能 我 , 而 不 需 要 加 载 整 个 依 赖 库 , 我 们 只 保 留 使 用 的 功 能 。 P r o G u a r d 可 以 做 到 瘦 身 优 化 , 减 少 不 使 用 的 我 代 码 和 资 源 文 件 。 可 以 阅 读 如 下 资 源 官 方 的 P r o G u a r d 介 绍 A n d r o i d P r o G u a r d 详 解 总 结 如 果 我 们 掌 握 G r a d l e 的 开 发 技 巧 , 可 以 极 大 提 升 编 译 速 度 , 不 用 浪 费 更 多 的 时 间 在 等 待 中 , 同 时 G r a d l e 也 是 很 好 的 构 建 编 译 工 具 , 需 要 了 解 更 多 可 以 阅 读 官 方 的 G r a d l e 文 档 A n d r o i d G r a d l e 展 开 全 文 > > 使 用 K o t l i n 的 E x t e n s i o n 快 速 打 开 A c t i v i t y 页 面 2 0 1 9 0 3 2 6 我 们 传 统 打 开 A c t i v i t y 页 面 , 通 过 创 建 I n t e n t 对 象 , 并 传 值 给 s t a r t A c t i v i t y ( ) 方 法 。 传 统 方 法 : 1 2 v a l i n t e n t = I n t e n t ( a c t i v i t y , N e x t A c t i v i t y : : c l a s s ) a c t i v i t y . s t a r t A c t i v i t y ( i n t e n t ) 如 果 需 要 传 多 个 参 数 时 : 1 2 3 4 v a l i n t e n t = I n t e n t ( a c t i v i t y , N e x t A c t i v i t y : : c l a s s ) i n t e n t . p u t E x t r a ( i n t , 1 ) i n t e n t . p u t E x t r a ( s t r i n g , s t r ) a c t i v i t y . s t a r t A c t i v i t y ( i n t e n t ) 现 在 , 我 们 用 K o t l i n 的 E x t e n s i o n 方 法 来 简 单 , 快 捷 打 开 A c t i v i t y 页 面 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 i n l i n e f u n r e i f i e d T : A n y > A c t i v i t y . l a u n c h A c t i v i t y ( r e q u e s t C o d e : I n t = 1 , o p t i o n s : B u n d l e ? = n u l l , n o i n l i n e i n i t : I n t e n t . ( ) U n i t = ) e l s e } i n l i n e f u n r e i f i e d T : A n y > C o n t e x t . l a u n c h A c t i v i t y ( o p t i o n s : B u n d l e ? = n u l l , n o i n l i n e i n i t : I n t e n t . ( ) U n i t = ) e l s e } i n l i n e f u n r e i f i e d T : A n y > n e w I n t e n t ( c o n t e x t : C o n t e x t ) : I n t e n t = I n t e n t ( c o n t e x t , T : : c l a s s . j a v a ) 使 用 方 法 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 / / 简 单 使 用 l a u n c h A c t i v i t y ( ) / / 添 加 传 递 参 数 l a u n c h A c t i v i t y / / 添 加 f l a g l a u n c h A c t i v i t y / / 添 加 T r a n s i s t i o n s v a l o p t i o n s = A c t i v i t y O p t i o n s C o m p a t . m a k e S c e n e T r a n s i t i o n A n i m a t i o n ( t h i s , a v a t a r , a v a t a r ) l a u n c h A c t i v i t y ( o p t i o n s = o p t i o n s ) / / 用 s t a r t A c t i v i t y F o r R e s u l t ( ) 启 动 l a u n c h A c t i v i t y ( r e q u e s t C o d e = 1 2 3 4 ) A n d r o i d K o t l i n 展 开 全 文 > > T e n s o r f l o w D a t a s e t A P I 2 0 1 9 0 3 0 1 在 T e n s o r f l o w 中 , f e e d d i c t 方 式 对 M o d e l 传 输 数 据 速 率 慢 , 使 用 管 道 输 入 ( p i p e l i n e ) 传 输 速 率 比 较 快 , 而 T e n s o r f l o w 内 置 了 一 个 A P I ( t f . d a t a ) , 它 可 以 方 便 地 处 理 数 据 以 及 高 效 地 传 输 数 据 给 M o d e l 。 这 篇 我 将 会 讲 述 t f . d a t a A P I 基 本 机 制 和 一 些 常 用 的 操 作 。 t f . d a t a A P I 主 要 有 两 个 对 象 : t f . d a t a . D a t a s e t 和 t f . d a t a . I t e r a t o r t f . d a t a . D a t a s e t : 存 储 一 列 表 数 据 元 素 的 T e n s o r 对 象 。 t f . d a t a . I t e r a t o r : 提 供 访 问 D a t a s e t 的 数 据 元 素 的 主 要 方 式 大 概 提 纲 创 建 数 据 集 ( C r e a t e D a t a s e t ) 创 建 迭 代 器 ( C r a e t e I t e r a t o r ) 例 子 总 结 创 建 数 据 集 ( C r a e t e D a t a s e t ) D a t a s e t 用 于 存 储 我 们 的 数 据 元 素 1 2 3 # 导 入 L i b r a r y i m p o r t n u m p y a s n p i m p o r t t e n s o r f l o w a s t f F r o m N u m p y 1 2 3 4 5 6 # 创 建 随 机 数 据 x = n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) # 创 建 D a t a s e t d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( x ) d a t a s e t 1 2 3 4 5 6 # 创 建 两 个 n u m p y a r r a y x , y = n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) , n p . r a n d o m . s a m p l e ( ( 5 , 1 ) ) # 两 个 n u m p y a r r a y 同 时 创 建 D a t a s e t d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( ( x , y ) ) d a t a s e t F r o m T e n s o r 对 象 1 2 3 4 a = t f . r a n d o m _ u n i f o r m ( [ 5 , 2 ] ) d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( a ) d a t a s e t F r o m P l a c e h o l d e r 1 2 3 4 5 # 通 过 p l a c e h o l d e r 来 创 建 D a t a s e t , 可 以 动 态 改 变 数 据 的 来 源 , 在 训 练 M o d e l 的 时 候 非 常 有 用 , 比 如 训 练 数 据 集 和 测 试 数 据 集 i n p u t = t f . p l a c e h o l d e r ( t f . f l o a t 6 4 , s h a p e = [ N o n e , 2 ] ) d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( i n p u t ) d a t a s e t F r o m C S V 文 件 1 2 3 4 5 6 7 8 9 1 0 1 1 # 通 过 C S V 文 件 数 据 创 建 D a t a s e t c s v _ f i l e = G S P C . c s v d a t a s e t = t f . c o n t r i b . d a t a . m a k e _ c s v _ d a t a s e t ( c s v _ f i l e , b a t c h _ s i z e = 3 2 ) i t e r a t o r = d a t a s e t . m a k e _ o n e _ s h o t _ i t e r a t o r ( ) n e x t _ e l e m e n t = i t e r a t o r . g e t _ n e x t ( ) D a t e , O p e n = n e x t _ e l e m e n t [ D a t e ] , n e x t _ e l e m e n t [ O p e n ] w i t h t f . S e s s i o n ( ) a s s e s s : p r i n t ( s e s s . r u n ( [ D a t e , O p e n ] ) ) 创 建 迭 代 器 ( C r e a t e I t e r a t o r ) I t e r a t o r 用 于 访 问 和 获 取 D a t a s e t 的 每 一 个 数 据 元 素 O n e h o t I t e r a t o r o n e h o t 是 最 简 单 的 迭 代 器 ( I t e r a t o r ) , 它 可 以 处 理 大 多 数 的 数 据 管 道 输 入 ( p i p l i n e ) 的 情 况 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 # 创 建 D a t a s e t x = n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( x ) # 创 建 I t e r a t o r i t e r a t o r = d a t a s e t . m a k e _ o n e _ s h o t _ i t e r a t o r ( ) n e x t _ e l e m e n t = i t e r a t o r . g e t _ n e x t ( ) w i t h t f . S e s s i o n ( ) a s s e s s : f o r _ i n r a n g e ( 5 ) : # 获 取 每 个 元 素 p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t ) ) I n i t i a l i z a b l e I t e r a t o r 它 可 以 初 始 化 不 同 数 据 的 , 但 还 是 同 一 个 D a t a s e t , 比 如 训 练 数 据 集 和 测 试 数 据 集 。 它 配 合 p l a c e h o l d e r 来 使 用 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 # 创 建 D a t a s e t i n p u t = t f . p l a c e h o l d e r ( t f . f l o a t 6 4 , s h a p e = [ N o n e , 2 ] ) d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( i n p u t ) t r a i n _ x = n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) t e s t _ x = n p . r a n d o m . s a m p l e ( ( 3 , 2 ) ) # 创 建 I t e r a t o r i t e r a t o r = d a t a s e t . m a k e _ i n i t i a l i z a b l e _ i t e r a t o r ( ) n e x t _ e l e m e n t = i t e r a t o r . g e t _ n e x t ( ) w i t h t f . S e s s i o n ( ) a s s e s s : # t r a i n n i n g m o d e l # 使 用 t r a i n n i n g 数 据 集 , 并 初 始 化 I t e r a o t r s e s s . r u n ( i t e r a t o r . i n i t i a l i z e r , f e e d _ d i c t = ) f o r _ i n r a n g e ( 5 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t ) ) p r i n t ( ) # e v a l u a t e m o d e l # 使 用 测 试 数 据 集 , 初 始 化 I t e r a t o r s e s s . r u n ( i t e r a t o r . i n i t i a l i z e r , f e e d _ d i c t = ) f o r _ i n r a n g e ( 3 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t ) ) R e i n i t i a l i z a b l e I t e r a t o r r e i n i t i a l i z a b l e 可 以 初 始 化 两 个 不 同 数 据 和 不 同 D a t a s e t 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 # 创 建 D a t a s e t t r a i n i n g _ d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) ) t e s t _ d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( n p . r a n d o m . s a m p l e ( ( 3 , 2 ) ) ) # 创 建 I t e r a t o r i t e r a t o r = t f . d a t a . I t e r a t o r . f r o m _ s t r u c t u r e ( t r a i n i n g _ d a t a s e t . o u t p u t _ t y p e s , t r a i n i n g _ d a t a s e t . o u t p u t _ s h a p e s ) n e x t _ e l e m e n t = i t e r a t o r . g e t _ n e x t ( ) # 创 建 两 个 不 同 数 据 集 的 初 始 化 t r a i n i n g _ i n i t _ o p = i t e r a t o r . m a k e _ i n i t i a l i z e r ( t r a i n i n g _ d a t a s e t ) t e s t _ i n i t _ o p = i t e r a t o r . m a k e _ i n i t i a l i z e r ( t e s t _ d a t a s e t ) w i t h t f . S e s s i o n ( ) a s s e s s : s e s s . r u n ( t r a i n i n g _ i n i t _ o p ) f o r _ i n r a n g e ( 5 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t ) ) p r i n t ( ) s e s s . r u n ( t e s t _ i n i t _ o p ) f o r _ i n r a n g e ( 3 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t ) ) F e e d a b l e I t e r a t o r f e e d a b l e 类 似 与 r e i n i t i a l a z a b l e , 但 是 f e e d a b l e 是 创 建 两 个 不 同 的 I t e r a t o r , 来 自 不 同 数 据 集 , 切 换 I t e r a t o r 时 不 用 重 新 初 始 化 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 t r a i n i n g _ d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( n p . r a n d o m . s a m p l e ( ( 5 , 2 ) ) ) t e s t _ d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( n p . r a n d o m . s a m p l e ( ( 3 , 2 ) ) ) h a n d l e = t f . p l a c e h o l d e r ( t f . s t r i n g , s h a p e = [ ] ) i t e r a t o r = t f . d a t a . I t e r a t o r . f r o m _ s t r i n g _ h a n d l e ( h a n d l e , t r a i n i n g _ d a t a s e t . o u t p u t _ t y p e s , t r a i n i n g _ d a t a s e t . o u t p u t _ s h a p e s ) n e x t _ e l e m e n t = i t e r a t o r . g e t _ n e x t ( ) t r a i n i n g _ i t e r a t o r = t r a i n i n g _ d a t a s e t . m a k e _ o n e _ s h o t _ i t e r a t o r ( ) t e s t _ i t e r a t o r = t e s t _ d a t a s e t . m a k e _ i n i t i a l i z a b l e _ i t e r a t o r ( ) w i t h t f . S e s s i o n ( ) a s s e s s : t r a i n i n g _ h a n d l e = s e s s . r u n ( t r a i n i n g _ i t e r a t o r . s t r i n g _ h a n d l e ( ) ) t e s t _ h a n d l e = s e s s . r u n ( t e s t _ i t e r a t o r . s t r i n g _ h a n d l e ( ) ) f o r _ i n r a n g e ( 5 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t , f e e d _ d i c t = ) ) p r i n t ( ) s e s s . r u n ( t e s t _ i t e r a t o r . i n i t i a l i z e r ) f o r _ i n r a n g e ( 3 ) : p r i n t ( s e s s . r u n ( n e x t _ e l e m e n t , f e e d _ d i c t = ) ) 例 子 前 面 的 例 子 都 是 通 过 在 S e s s i o n 中 打 印 g e t _ n e x t ( ) 的 值 , 下 面 通 过 一 个 例 子 , 来 实 现 D a t a s e t 的 数 据 传 值 给 M o d e l 来 训 练 。 O n e h o t 的 例 子 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 # 生 成 数 据 f e a t u r e s = n p . r a n d o m . s a m p l e ( ( 1 0 0 , 1 ) ) l a b e l s = 2 * f e a t u r e s + 1 . 5 e p o c h e s = 1 0 b a t c h _ s i z e = 3 2 # 创 建 D a t a s e t d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( ( f e a t u r e s , l a b e l s ) ) d a t a s e t = d a t a s e t . b a t c h ( b a t c h _ s i z e ) . r e p e a t ( ) i t e r a t o r = d a t a s e t . m a k e _ o n e _ s h o t _ i t e r a t o r ( ) x , y = i t e r a t o r . g e t _ n e x t ( ) # 建 立 M o d e l l a y e r 1 = t f . l a y e r s . d e n s e ( x , 4 , a c t i v a t i o n = t f . t a n h ) l a y e r 2 = t f . l a y e r s . d e n s e ( l a y e r 1 , 4 , a c t i v a t i o n = t f . t a n h ) p r e d i c t i o n s = t f . l a y e r s . d e n s e ( l a y e r 2 , 1 , a c t i v a t i o n = t f . s i g m o i d ) l o s s = t f . l o s s e s . m e a n _ s q u a r e d _ e r r o r ( p r e d i c t i o n s , y ) o p t i m i z e r = t f . t r a i n . A d a m O p t i m i z e r ( ) . m i n i m i z e ( l o s s ) w i t h t f . S e s s i o n ( ) a s s e s s : s e s s . r u n ( t f . g l o b a l _ v a r i a b l e s _ i n i t i a l i z e r ( ) ) f o r i i n r a n g e ( e p o c h e s ) : _ , l = s e s s . r u n ( [ o p t i m i z e r , l o s s ] ) p r i n t ( E p o c h : , L o s s : . f o r m a t ( ( i + 1 ) , l ) ) I n i t i a l i z a b l e 例 子 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 # 生 成 数 据 t r a i n i n g _ d a t a = ( n p . r a n d o m . s a m p l e ( ( 1 0 0 , 2 ) ) , n p . r a n d o m . s a m p l e ( ( 1 0 0 , 1 ) ) ) t e s t _ d a t a = ( n p . r a n d o m . s a m p l e ( ( 3 0 , 2 ) ) , n p . r a n d o m . s a m p l e ( ( 3 0 , 1 ) ) ) e p o c h e s = 1 0 b a t c h _ s i z e = 3 2 i n p u t , l a b e l s = t f . p l a c e h o l d e r ( t f . f l o a t 3 2 , s h a p e = [ N o n e , 2 ] ) , t f . p l a c e h o l d e r ( t f . f l o a t 3 2 , s h a p e = [ N o n e , 1 ] ) d a t a s e t = t f . d a t a . D a t a s e t . f r o m _ t e n s o r _ s l i c e s ( ( i n p u t , l a b e l s ) ) . b a t c h ( b a t c h _ s i z e ) . r e p e a t ( ) i t e r a t o r = d a t a s e t . m a k e _ i n i t i a l i z a b l e _ i t e r a t o r ( ) x , y = i t e r a t o r . g e t _ n e x t ( ) # 建 立 M o d e l l a y e r 1 = t f . l a y e r s . d e n s e ( x , 4 , a c t i v a t i o n = t f . t a n h ) l a y e r 2 = t f . l a y e r s . d e n s e ( l a y e r 1 , 4 , a c t i v a t i o n = t f . t a n h ) p r e d i c t i o n s = t f . l a y e r s . d e n s e ( l a y e r 2 , 1 , a c t i v a t i o n = t f . s i g m o i d ) l o s s = t f . l o s s e s . m e a n _ s q u a r e d _ e r r o r ( p r e d i c t i o n s , y ) o p t i m i z e r = t f . t r a i n . A d a m O p t i m i z e r ( ) . m i n i m i z e ( l o s s ) w i t h t f . S e s s i o n ( ) a s s e s s : s e s s . r u n ( t f . g l o b a l _ v a r i a b l e s _ i n i t i a l i z e r ( ) ) s e s s . r u n ( i t e r a t o r . i n i t i a l i z e r , f e e d _ d i c t = ) p r i n t ( T r a i n i n g . . . ) f o r i i n r a n g e ( e p o c h e s ) : t o t a l _ l o s s = 0 f o r _ i n r a n g e ( 1 0 ) : _ , l = s e s s . r u n ( [ o p t i m i z e r , l o s s ] ) t o t a l _ l o s s + = l p r i n t ( E p o c h e s : , L o s s : . f o r m a t ( i , t o t a l _ l o s s / 1 0 ) ) p r i n t ( T e s t i n g . . . ) s e s s . r u n ( i t e r a t o r . i n i t i a l i z e r , f e e d _ d i c t = ) p r i n t ( T e s t l o s s : . f o r m a t ( s e s s . r u n ( l o s s ) ) ) 总 结 D a t s e t A P I 为 我 们 提 供 了 快 捷 和 高 效 的 方 式 来 生 成 数 据 集 输 入 管 道 ( p i p e l i n e ) , 可 为 M o d e l 快 速 训 练 , 评 估 , 测 试 。 以 上 的 代 码 在 g i t h u b 里 面 T e n s o r f l o w D e e p L e a r n i n g M a c h i n e L e a r n i n g 展 开 全 文 > > A n d r o i d N D K 开 发 中 引 入 O p e n C V 库 2 0 1 9 0 2 2 7 A n d r o i d N D K 开 发 中 , 我 们 作 图 片 处 理 时 , 运 用 到 O p e n C V 第 三 方 库 , 这 时 需 要 倒 入 O p e n C V S D K 到 A n d r o i d S t u d i o 项 目 中 . 想 了 解 更 多 代 码 , 可 以 查 看 我 的 g i t h u b 代 码 如 下 是 导 入 O p e n C V 到 A n d r o i d S t u d i o 项 目 的 步 骤 。 ( 如 果 麻 烦 , 直 接 把 我 项 目 的 m o d u l e 导 入 你 的 项 目 中 , 修 改 C M a k e 文 件 和 g r a d l e ) 在 O p e n C V 官 方 上 下 载 o p e n c v a n d r o i d s d k 包 。 h t t p s : / / o p e n c v . o r g / r e l e a s e s . h t m l 在 A n d r o i d S t u d i o 创 建 新 的 m o d u l e L i b r a r y n a m e : O p e n C V M o d u l e n a m e : o p e n c v P a c k a g e n a m e : o r g . o p e n c v 复 制 o p e n c v _ s d k _ p a t h / s d k / j a v a / s r c 下 的 所 有 文 件 到 y o u r _ p r o j e c t _ p a t h / o p e n c v / s r c / m a i n / j a v a 目 录 下 在 m a i n 的 目 录 下 创 建 一 个 路 径 目 录 a i d l / o r g / o p e n c v / e n g i n e , 以 及 把 j a v a / o r g / o p e n c v / e n g i n e / O p e n c O p e n C V E n g i n e I n t e r f a c e . a i d l 文 件 移 动 到 刚 创 建 的 目 录 下 复 制 资 源 文 件 , 复 制 o p e n c v _ s d k _ p a t h / s d k / j a v a / r e s 下 所 有 文 件 到 y o u r _ p r o j e c t _ p a t h / o p e n c v / s r c / m a i n / r e s 目 录 下 在 y o u r _ p r o j e c t _ o p e n c v / s r c 目 录 下 创 建 s d k 目 录 , 并 把 o p e n c v _ s d k _ p a t h / s d k / n a t i v e 所 有 文 件 复 制 到 刚 创 建 的 目 录 下 在 o p e n c v m o d u l e 下 创 建 C M a k e L i s t s . t x t 文 件 , 并 添 加 如 下 代 码 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 c m a k e _ m i n i m u m _ r e q u i r e d ( V E R S I O N 3 . 4 . 1 ) s e t ( O p e n C V _ D I R s r c / s d k / n a t i v e / j n i ) f i n d _ p a c k a g e ( O p e n C V R E Q U I R E D ) m e s s a g e ( S T A T U S O p e n C V l i b r a r i e s : $ ) i n c l u d e _ d i r e c t o r i e s ( $ ) ` ` ` 8 . 修 改 ` ` ` o p e n c v m o d u l e ` ` ` 的 ` ` ` b u i l d . g r a d l e ` ` ` 文 件 , 如 下 ` ` ` g r a d l e a n d r o i d } } b u i l d T y p e s } e x t e r n a l N a t i v e B u i l d } s o u r c e S e t s } } 在 a p p m o d u l e 同 样 创 建 C M a k e L i s t s . t x t 文 件 , 添 加 如 下 代 码 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 c m a k e _ m i n i m u m _ r e q u i r e d ( V E R S I O N 3 . 4 . 1 ) a d d _ l i b r a r y ( n a t i v e l i b S H A R E D n a t i v e l i b . c p p ) # I n c l u d e l i b r a r i e s n e e d e d f o r h e l l o j n i l i b t a r g e t _ l i n k _ l i b r a r i e s ( n a t i v e l i b a n d r o i d l o g ) s e t ( O p e n C V _ D I R . . / . . / . . / . . / o p e n c v / s r c / s d k / n a t i v e / j n i ) # 根 据 C M a k e L i s t s . t x t 路 径 修 改 ( 相 对 目 录 ) f i n d _ p a c k a g e ( O p e n C V R E Q U I R E D ) m e s s a g e ( S T A T U S O p e n C V l i b r a r i e s : $ ) t a r g e t _ l i n k _ l i b r a r i e s ( n a t i v e l i b $ ) 修 改 a p p m o d u l e 的 b u i l d . g r a d l e 文 件 , 如 下 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 a n d r o i d } } b u i l d T y p e s } e x t e r n a l N a t i v e B u i l d } } 同 步 g r a d l e 。 在 C + + 文 件 中 是 否 可 以 i n c l u d e 如 果 打 包 完 成 , 在 分 析 a p k 中 可 以 查 看 到 o p e n c v 的 s o 文 件 步 骤 完 成 。 如 有 遇 到 什 么 问 题 可 以 在 g i t h u b 上 提 问 。 A n d r o i d O p e n C V N D K 展 开 全 文 > > 用 S Q L i t e O p e n H e l p e r 实 现 操 作 S Q L i t e 2 0 1 9 0 2 1 8 A n d r o i d 内 置 数 据 库 S Q L i t e , S Q L i t e 是 开 源 的 S Q L 数 据 库 。 A n d r o i d 提 供 了 S Q L i t e O p e n H e l p e r 类 来 操 作 S Q L i t e 数 据 库 , 该 类 包 含 的 方 法 有 创 建 , 插 入 , 删 除 , 更 新 ( C R U D ) 操 作 。 现 在 , 我 们 用 S Q L i t e O p e n H e l p e r 来 实 现 S Q L i t e 的 操 作 。 首 先 来 看 下 布 局 代 码 , T e x t V i e w 显 示 数 据 库 所 有 数 据 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 L i n e a r L a y o u t x m l n s : a n d r o i d = h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s / a n d r o i d x m l n s : t o o l s = h t t p : / / s c h e m a s . a n d r o i d . c o m / t o o l s a n d r o i d : o r i e n t a t i o n = v e r t i c a l a n d r o i d : l a y o u t _ w i d t h = m a t c h _ p a r e n t a n d r o i d : l a y o u t _ h e i g h t = m a t c h _ p a r e n t t o o l s : c o n t e x t = . M a i n A c t i v i t y > T e x t V i e w a n d r o i d : i d = @ + i d / d i s p l a y _ n a m e _ t v a n d r o i d : l a y o u t _ w i d t h = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ m a r g i n = 1 6 d p a n d r o i d : t e x t = / > E d i t T e x t a n d r o i d : i d = @ + i d / n a m e _ e t a n d r o i d : l a y o u t _ w i d t h = m a t c h _ p a r e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ m a r g i n S t a r t = 8 d p a n d r o i d : l a y o u t _ m a r g i n T o p = 1 6 d p a n d r o i d : l a y o u t _ m a r g i n E n d = 8 d p a n d r o i d : e m s = 1 0 a n d r o i d : h i n t = 输 入 用 户 名 称 a n d r o i d : i n p u t T y p e = t e x t P e r s o n N a m e a n d r o i d : t e x t = / > B u t t o n a n d r o i d : i d = @ + i d / a d d _ t o _ d b _ b t n a n d r o i d : l a y o u t _ w i d t h = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : o n C l i c k = a d d U s e r a n d r o i d : t e x t = 添 加 用 户 / > E d i t T e x t a n d r o i d : i d = @ + i d / i d _ e t a n d r o i d : l a y o u t _ w i d t h = m a t c h _ p a r e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ m a r g i n S t a r t = 8 d p a n d r o i d : l a y o u t _ m a r g i n T o p = 1 6 d p a n d r o i d : l a y o u t _ m a r g i n E n d = 8 d p a n d r o i d : e m s = 1 0 a n d r o i d : h i n t = 输 入 要 删 除 的 用 户 I D a n d r o i d : i n p u t T y p e = n u m b e r D e c i m a l / > B u t t o n a n d r o i d : i d = @ + i d / d e l e t e _ b t n a n d r o i d : l a y o u t _ w i d t h = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : t e x t = 根 据 I D 删 除 用 户 / > B u t t o n a n d r o i d : i d = @ + i d / s h o w _ d a t a _ b t n a n d r o i d : l a y o u t _ w i d t h = w r a p _ c o n t e n t a n d r o i d : l a y o u t _ h e i g h t = w r a p _ c o n t e n t a n d r o i d : o n C l i c k = s h o w D a t a a n d r o i d : t e x t = 查 看 所 有 用 户 / > L i n e a r L a y o u t > 接 下 来 我 们 创 建 一 个 数 据 模 型 ( m o d e l ) 1 2 3 4 5 6 d a t a c l a s s U s e r ( v a r i d : I n t , v a r u s e r N a m e : S t r i n g ) 新 建 一 个 类 继 承 S Q L i t e O p e n H e l p e r 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 c l a s s D B H e l p e r ( c o n t e x t : C o n t e x t , f a c t o r y : S Q L i t e D a t a b a s e . C u r s o r F a c t o r y ? ) : S Q L i t e O p e n H e l p e r ( c o n t e x t , D A T A B A S E _ N A M E , f a c t o r y , D A T A B A S E _ V E R S I O N ) o v e r r i d e f u n o n U p g r a d e ( d b : S Q L i t e D a t a b a s e , o l d V e r s i o n : I n t , n e w V e r s i o n : I n t ) f u n a d d N a m e ( u s e r : U s e r ) f u n d e l e t e U s e r B y I d ( i d : I n t ) : B o o l e a n , n u l l ) > 0 } f u n g e t A l l U s e r ( ) : C u r s o r ? c o m p a n i o n o b j e c t } 现 在 我 们 通 过 B u t t o n 的 点 击 事 件 来 对 S Q L i t e 数 据 库 进 行 操 作 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 f u n a d d U s e r ( v i e w : V i e w ) 添 加 到 数 据 库 , T o a s t . L E N G T H _ S H O R T ) . s h o w ( ) } f u n d e l e t e U s e r ( v i e w : V i e w ) e l s e } f u n s h o w D a t a ( v i e w : V i e w ) n a m e : $ ) t e x t V i e w . a p p e n d ( \ \ n ) w h i l e ( c u r s o r . m o v e T o N e x t ( ) ) n a m e : $ ) t e x t V i e w . a p p e n d ( \ \ n ) } c u r s o r . c l o s e ( ) } c a t c h ( e : C u r s o r I n d e x O u t O f B o u n d s E x c e p t i o n ) } 整 个 M a i n A c t i v i t 的 代 码 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 c l a s s M a i n A c t i v i t y : A p p C o m p a t A c t i v i t y ( ) f u n a d d U s e r ( v i e w : V i e w ) 添 加 到 数 据 库 , T o a s t . L E N G T H _ S H O R T ) . s h o w ( ) } f u n d e l e t e U s e r ( v i e w : V i e w ) e l s e } f u n s h o w D a t a ( v i e w : V i e w ) n a m e : $ ) t e x t V i e w . a p p e n d ( \ \ n ) w h i l e ( c u r s o r . m o v e T o N e x t ( ) ) n a m e : $ ) t e x t V i e w . a p p e n d ( \ \ n ) } c u r s o r . c l o s e ( ) } c a t c h ( e : C u r s o r I n d e x O u t O f B o u n d s E x c e p t i o n ) } } 运 行 代 码 。 以 上 就 通 过 S Q L i t e O p e n H e l p e r 来 实 现 对 S Q L i t e 数 据 的 操 作 。 上 述 代 码 在 我 的 g i t h u b 。 A n d r o i d 展 开 全 文 > > H e x o T h e m e Y i l i a b y L i t t e n 粤 I C P 备 2 0 2 2 1 3 2 6 2 7 号 1 所 有 文 章 关 于 我 t a g : A n d r o i d O p e n C V N D K T e n s o r f l o w D e e p L e a r n i n g M a c h i n e L e a r n i n g K o t l i n R x J a v a G r a d l e C o r o u t i n e F l u t t e r 缺 失 模 块 。 1 、 请 确 保 n o d e 版 本 大 于 6 . 2 2 、 在 博 客 根 目 录 ( 注 意 不 是 y i l i a 根 目 录 ) 执 行 以 下 命 令 : n p m i h e x o g e n e r a t o r j s o n c o n t e n t s a v e 3 、 在 根 目 录 _ c o n f i g . y m l 里 添 加 配 置 : j s o n C o n t e n t : m e t a : f a l s e p a g e s : f a l s e p o s t s : t i t l e : t r u e d a t e : t r u e p a t h : t r u e t e x t : f a l s e r a w : f a l s e c o n t e n t : f a l s e s l u g : f a l s e u p d a t e d : f a l s e c o m m e n t s : f a l s e l i n k : f a l s e p e r m a l i n k : f a l s e e x c e r p t : f a l s e c a t e g o r i e s : f a l s e t a g s : t r u e I m d e e p l y d i v i n g i n t o M a c h i n e L e a r n i n g

站点概括

关于www.zhuohao.tech说明:
www.zhuohao.tech由网友主动性提交被吾爱收录网整理收录的,吾爱收录网仅提供www.zhuohao.tech的基础信息并免费向大众网友展示,www.zhuohao.tech的是IP地址:119.23.222.236 [中国广东深圳 阿里云],www.zhuohao.tech的百度权重为0、百度手机权重为0、百度收录为0条、360收录为0条、搜狗收录为0条、谷歌收录为0条、百度来访流量大约在-之间、百度手机端来访流量大约在-之间、www.zhuohao.tech的备案号是粤ICP备2022132627号、备案人叫袁卓豪、被百度收录的关键词有0个、手机端关键词有0个、该站点迄今为止已经创建4年5月29天。

内容声明:

1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违规信息,如您发现违规内容,请联系我们进行清除处理!
4、本文地址:https://wuaishoulu.cn/bokedh/10649.html,复制请保留版权链接!


温馨小提示:在您的网站做上本站友情链接,访问一次即可自动收录并自动排在本站第一位!
您可能还喜欢

古历史-历史知识的百科大全

古历史一家专注历史知识的百科大全

花浪网 - 分享世界名牌复刻手表知识和名牌复刻手表价格

花浪网{www.hlw.com.cn}专注分享世界名牌复刻手表知识和名牌复刻手表价格信息、世界名牌复刻手表品牌排名、复刻手表品牌信息等,倾力打造的一个复刻手表专业相关知识信息整合的复刻手表网站,为您购买品牌复刻手表提供最有价值的信息参考!

进京证摄像头位置分布地图-外地车在北京必备

北京拍摄未办进京证的摄像头探头和电子眼位置多、分布广,外地车在北京限行严格,最新进京证摄像头分布地图能让你不办进京证也不会违章被扣分罚款。本站内容全部根据网友分享所成,堪称全网最新最快最全面

家多福装饰

家多福装饰,始于2010年,大亚湾装修协会副会长单位。一线环保材料厂家源头供货;自有施工团队,工程不转包、不外包;全案设计,一站式整装,解决您的所有家装问题

旺销王-免费跨境电商ERP|打单|刊登|营销工具

旺销王是一款跨境电商ERP软件,支持Aliexpress,Amazon,Lazada,Shopee,Shopify,JOOM,是为跨境卖家提供销量提升和店铺管理的最佳工具。工具包含:店铺诊断、标题优化、批量编辑、橱窗推荐、自动评价等

汕尾市电力行业协会

汕尾市电力行业协会

新郑网 - 新郑信息港

新郑网手机版

随机文章
关于回收网站提交配额的通知 百度站长资源平台 (关于回收网站提交配额的通知 详情)

关于回收网站提交配额的通知 百度站长资源平台 (关于回收网站提交配额的通知 详情)

这则通知是关于搜索资源平台针对非实名账户内站点、低质站点暂停sitemap提交能力并调整API每日推送额度的通知,这是因为近期黑产、作弊行为肆虐,大量占用平台资源,严重影响了用户体验,因此,各站点需要加强日常维护和质量管理,只有合规站点才能够恢复权益并调配配额,原文如下,由于近期黑产、作弊行为肆虐,大量抢占平台资源,严重影响用户体验,...。

SEO知识 2024-04-14 09:05:50

账户注册 (账户注册未满一天是什么意思)

账户注册 (账户注册未满一天是什么意思)

曹操SEO账户注册聚合前沿SEO优化经验,分享批量建站程序及推送软件,免费外推工具与技术教程,尽在曹操SEO!Copyright@曹操SEO,网站公告欢迎访问曹操SEO网站!本网站所提供的所有程序,仅限于个人在本地、无网络连接的环境下进行测试、学习与研究之用,严禁以任何形式进行分享、传播或用于非法、违规及擦边球内容,互联网绿色网络环境...。

SEO知识 2024-04-14 09:10:21

如何运用软文培训推广提升企业品牌知名度

如何运用软文培训推广提升企业品牌知名度

如何运用软文培训推广提升企业品牌知名度呢?软文培训推广的常见形式软文培训推广主要就是指以软文为主要传播渠道,包括但不限于论坛、博客、微博、软文等,利用好这些新兴媒体,通过软文的巧妙构思,将企业的营销信息精准地传达给潜在用户群体,软文培训推广,为何能让企业品牌快速的传播,有效的口碑传播?其主要原因是用软文营销提升品牌的知名度,能够吸引更...。

互联网资讯 2024-04-14 09:53:32

如何撰写高效的App推广软文200字

如何撰写高效的App推广软文200字

软文发稿网作为优秀的软文撰写者,如果要撰写一篇高效的软文,首先要做的就是提升软文的质量,提高软文的写作质量是软文推广中最重要的一部分,高质量的软文除了能够吸引更多的读者阅读,还能让用户自发地转载和分享,这样一来软文就能获得更多的关注度,那么如何撰写高效的软文呢?下面就来和大家聊一聊,首先,标题一定要有吸引力,这也是为什么软文推广平台要...。

互联网资讯 2024-04-14 11:25:55

如何打造成功的购物中心招商推广软文

如何打造成功的购物中心招商推广软文

如何打造成功的购物中心招商推广软文?1、品牌定位,新开业的商场可以考虑品牌定位,品牌是商场发展的基础,品牌是商场成功的关键,招商推广软文的招商推广,品牌的定位必须清楚,准确,只有明确品牌定位,才能帮助商场找到目标客户,根据品牌定位,策划出一套精准的招商推广软文,3、打造品牌核心价值,品牌是商场发展的基石,招商推广软文的招商推广,品牌核...。

互联网资讯 2024-04-14 11:43:47

如何让你的产品在市场中脱颖而出 软文营销广告短文案例

如何让你的产品在市场中脱颖而出 软文营销广告短文案例

软文营销广告短文案例,如何让你的产品在市场中脱颖而出,让你的产品在市场中脱颖而出,这是许多营销人员的疑惑,我认为,每个成功的营销人都有不同的经验,我们认为,软文营销广告在市场营销中必不可少的一个环节是,吸引人的标题,吸引人的产品描述,以及如何使这个标题与众不同,软文营销广告是一种吸引人的网络营销手段,我们用最短的时间,最直接的方式...。

互联网资讯 2024-04-14 13:48:21

如何利用零食营销模板软文打造爆款商品

如何利用零食营销模板软文打造爆款商品

如何利用零食营销模板软文打造爆款商品?在我们看一些软文、自媒体或者线下某些新闻媒体进行产品、品牌的宣传推广,我们发现都是千篇一律的做法,一种是毫无新意,一种是很直白的推销,再一种是很粗暴的宣传,这种营销方式是非常容易让用户看出来是推销产品,是介绍产品,或者是对这个品牌没有好感,而事实上这种类型的软文是没有任何意义的,所以在打造爆款商品...。

互联网资讯 2024-04-14 14:47:32

软文营销的故事模式 打造品牌故事 引领市场风向

软文营销的故事模式 打造品牌故事 引领市场风向

软文营销的故事模式,打造品牌故事,引领市场风向对于大多数的企业而言,需要有比较专业的产品和渠道进行宣传,特别是软文,同样的文章也有不同的写作套路,因为在写作的过程中,通常都会先了解客户的产品定位和具体市场,然后根据产品定位来考虑自己的软文是写给谁看,然后选择合适的发布平台,最终确定软文的内容,写好文章之后,将自己所需的资料素材和软文故...。

互联网资讯 2024-04-14 17:18:21

如何撰写有效的美业软文营销案例论文

如何撰写有效的美业软文营销案例论文

如何撰写有效的美业软文营销案例论文众所周知,软文是最流行的网络营销方法之一,如果您希望软文的传播效果最大化,那么软文营销是必须的,软文营销通过特定的概念吸引力,利用心理影响,心理唤起和威胁来实现产品销售的文字模式,但是在软文营销中,应注意如何让软文被更多的人阅读并且达到预期的传播效果,首先,在撰写软文之前,您需要收集足够的相关资料,例...。

互联网资讯 2024-04-15 10:16:28

如何用内容打造品牌力 华为手机软文营销

如何用内容打造品牌力 华为手机软文营销

首先,建立品牌背书,其次,加强受众对品牌的认知,一般来说,消费者对品牌的认识往往是从建立信任开始的,比如在一些品牌领域,行业趋势研究报告等品牌背书可以在消费者的决策过程中起到决定性的作用,对于品牌来说,这些数据在变,哪些数据具有说服力,哪些数据在发生改变,这些数据能够帮助品牌正确地判断哪些数据有效,哪些数据不能影响品牌的市场推广,在有...。

互联网资讯 2024-04-15 12:12:07

为您打造最优质的软文服务 义乌软文平台

为您打造最优质的软文服务 义乌软文平台

义乌软文平台,为中小企业提供最优质的软文服务平台义乌软文平台的经营模式公司注册会员需要缴纳一定金额的保证金,在商家的注册资本内,公司可以提供担保,使得发布的软文将免费地展示在您的面前淘宝店铺通过阿里巴巴实名认证,发布的软文将永久保存,并享受与直通车类似的免费推广模式在网店后台发布带有,软文代写,代发,代发,等字眼的文章,当客户点击...。

互联网资讯 2024-04-15 13:18:35

说普通话写规范字顺口溜 说普通话写规范字顺口溜

说普通话写规范字顺口溜 说普通话写规范字顺口溜

为什么要说普通话写规范字,普通话是国家通用语言,写规范字可以提高沟通的准确性和效率,现代社会信息爆炸,我们需要通过语言来交流和传达信息,而规范字的使用可以保证信息的准确传递,避免产生歧义和误解,什么是规范字,规范字是指按照国家语言文字规定所确定的正确、标准的汉字,在使用中文过程中,我们要尽量遵循规范字的使用,以保证文字的准确性和规范性...。

互联网资讯 2024-04-15 14:31:33