Android企业级实战-界面篇-1

简介: 本文详细介绍了Android企业级开发中界面实现的过程,涵盖效果展示、实现前准备及代码实现。作者通过自身经历分享了Android开发经验,并提供了`dimens.xml`、`ids.xml`、`colors.xml`和`strings.xml`等配置文件内容,帮助开发者快速构建规范化的UI布局。文章以一个具体的用户消息界面为例,展示了如何使用线性布局(LinearLayout)和相对布局(RelativeLayout)实现功能模块排列,并附带注意事项及使用方法,适合初学者和进阶开发者参考学习。

文章目录

Android企业级实战-界面篇-1

计蒙创作不易,未入驻的其他平台搬运请按协议规则搬运。

前言(大佬请直接跳转至第三步)

计蒙从上班再次回到学校生活后,认识的很多学校软件系朋友通过校招拿到了大厂Android开发岗位的offer,计蒙因为学习是专科起点,到本科后算法部分缺陷极大,仅拿到一家大厂offer,由于个人好不容易回到校园生活,不想太早再次回到上班的日子,于是继续准备升学,为了不将Android遗忘,还是偶尔写写代码,也就有了此文章。

以下是本篇文章正文内容

一、先看看实现的效果

1.jpg

2.jpg

3.png

二、实现前准备(简单讲解以及辅助文件代码,以及取名借鉴规范)

1.某大厂规范(为例)

4.png

2.dimens.xml文件内容(此案例可用)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="jimeng_dp_0">0.0dip</dimen>
    <dimen name="jimeng_dp_05">0.5dip</dimen>
    <dimen name="jimeng_dp_1">1.0dip</dimen>
    <dimen name="jimeng_dp_10">10.0dip</dimen>
    <dimen name="jimeng_dp_100">100.0dip</dimen>
    <dimen name="jimeng_dp_11">11.0dip</dimen>
    <dimen name="jimeng_dp_115">115.0dip</dimen>
    <dimen name="jimeng_dp_12">12.0dip</dimen>
    <dimen name="jimeng_dp_120">120.0dip</dimen>
    <dimen name="jimeng_dp_123">123.0dip</dimen>
    <dimen name="jimeng_dp_13">13.0dip</dimen>
    <dimen name="jimeng_dp_135">135.0dip</dimen>
    <dimen name="jimeng_dp_14">14.0dip</dimen>
    <dimen name="jimeng_dp_140">140.0dip</dimen>
    <dimen name="jimeng_dp_15">15.0dip</dimen>
    <dimen name="jimeng_dp_16">16.0dip</dimen>
    <dimen name="jimeng_dp_169">169.0dip</dimen>
    <dimen name="jimeng_dp_17">17.0dip</dimen>
    <dimen name="jimeng_dp_18">18.0dip</dimen>
    <dimen name="jimeng_dp_183">183.0dip</dimen>
    <dimen name="jimeng_dp_2">2.0dip</dimen>
    <dimen name="jimeng_dp_20">20.0dip</dimen>
    <dimen name="jimeng_dp_22">22.0dip</dimen>
    <dimen name="jimeng_dp_225">225.0dip</dimen>
    <dimen name="jimeng_dp_24">24.0dip</dimen>
    <dimen name="jimeng_dp_246">246.0dip</dimen>
    <dimen name="jimeng_dp_250">250.0dip</dimen>
    <dimen name="jimeng_dp_28">28.0dip</dimen>
    <dimen name="jimeng_dp_280">280.0dip</dimen>
    <dimen name="jimeng_dp_30">30.0dip</dimen>
    <dimen name="jimeng_dp_32">32.0dip</dimen>
    <dimen name="jimeng_dp_34">34.0dip</dimen>
    <dimen name="jimeng_dp_375">375.0dip</dimen>
    <dimen name="jimeng_dp_38">38.0dip</dimen>
    <dimen name="jimeng_dp_4">4.0dip</dimen>
    <dimen name="jimeng_dp_40">40.0dip</dimen>
    <dimen name="jimeng_dp_43">43.0dip</dimen>
    <dimen name="jimeng_dp_44">44.0dip</dimen>
    <dimen name="jimeng_dp_45">45.0dip</dimen>
    <dimen name="jimeng_dp_46">46.0dip</dimen>
    <dimen name="jimeng_dp_48">48.0dip</dimen>
    <dimen name="jimeng_dp_49">49.0dip</dimen>
    <dimen name="jimeng_dp_5">5.0dip</dimen>
    <dimen name="jimeng_dp_50">50.0dip</dimen>
    <dimen name="jimeng_dp_54">54.0dip</dimen>
    <dimen name="jimeng_dp_55">55.0dip</dimen>
    <dimen name="jimeng_dp_56">56.0dip</dimen>
    <dimen name="jimeng_dp_58">58.0dip</dimen>
    <dimen name="jimeng_dp_6">6.0dip</dimen>
    <dimen name="jimeng_dp_60">60.0dip</dimen>
    <dimen name="jimeng_dp_64">64.0dip</dimen>
    <dimen name="jimeng_dp_65">65.0dip</dimen>
    <dimen name="jimeng_dp_68">68.0dip</dimen>
    <dimen name="jimeng_dp_7">7.0dip</dimen>
    <dimen name="jimeng_dp_70">70.0dip</dimen>
    <dimen name="jimeng_dp_75">75.0dip</dimen>
    <dimen name="jimeng_dp_76">76.0dip</dimen>
    <dimen name="jimeng_dp_8">8.0dip</dimen>
    <dimen name="jimeng_dp_84">84.0dip</dimen>
    <dimen name="jimeng_dp_86">86.0dip</dimen>
    <dimen name="jimeng_dp_90">90.0dip</dimen>
    <dimen name="jimeng_px_1">1.0px</dimen>
    <dimen name="dp_10">10.0dip</dimen>
</resources>

3.ids.xml文件内容(此案例可用)

<resources>
<!--    第一个UI模块id-->
    <item type="id" name="like_icon" />
    <item type="id" name="user_profile_all_msg_layout" />
    <item type="id" name="ll_msg_layout1" />
    <item type="id" name="my_msg_like" />
    <item type="id" name="like_txt" />
    <item type="id" name="like_num" />
    <item type="id" name="my_msg_comment" />
    <item type="id" name="comment_txt" />
    <item type="id" name="comment_icon" />
    <item type="id" name="comment_num" />
    <item type="id" name="my_msg_chat" />
    <item type="id" name="chat_icon" />
    <item type="id" name="chat_txt" />
    <item type="id" name="chat_num" />
    <item type="id" name="my_msg_notification" />
    <item type="id" name="notification_icon" />
    <item type="id" name="notification_num" />
    <item type="id" name="notification_txt" />
    <item type="id" name="ll_msg_layout" />
    <item type="id" name="ll_my_history" />
    <item type="id" name="iv_foot_print_txt" />
    <item type="id" name="foot_print_txt" />
    <item type="id" name="ll_draft_box" />
    <item type="id" name="iv_draft_icon" />
    <item type="id" name="tv_draft_" />
    <item type="id" name="ll_question_box" />
    <item type="id" name="question_icon" />
    <item type="id" name="tv_question_box_count" />
    <item type="id" name="question_txt" />
    <item type="id" name="user_customer_layout" />
    <item type="id" name="feedback_icon" />
    <item type="id" name="qiyu_tip" />
    <item type="id" name="user_customer_title" />
    <item type="id" name="rl_view_stub" />
    <item type="id" name="rl_view_stub1" />

</resources>

4.colors.xml文件内容(此案例可用)

    <color name="jimeng_background_primary_light">#ffffffff</color>
    <color name="jimeng_white">@color/jimeng_background_primary_light</color>
    <color name="jimeng_text_primary_light">#ff2e2e2e</color>
    <color name="jimeng_black">@color/jimeng_text_primary_light</color>
    <color name="jimeng_red_light">#ffff6c93</color>

5.strings.xml文件内容(此案例可用)

    <string name="str_they_like_me">收到的喜欢</string>
    <string name="str_comment">评论</string>
    <string name="str_chat">聊天</string>
    <string name="str_notification">通知</string>
    <string name="str_help_and_feedback">帮助与反馈</string>
    <string name="str_question_box">提问箱</string>
    <string name="str_drafts">草稿箱</string>
    <string name="str_footprint">足迹</string>

三、实现

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@id/user_profile_all_msg_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/jimeng_dp_16"
    android:orientation="vertical">

    <LinearLayout
        android:id="@id/ll_msg_layout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/jimeng_dp_16"
        android:layout_marginRight="@dimen/jimeng_dp_16"
        android:background="@color/jimeng_white"
        android:orientation="horizontal">

        <RelativeLayout
            android:id="@id/my_msg_like"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/like_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/like_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_they_like_me"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/like_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_liked_light" />

            <TextView
                android:id="@id/like_num"
                android:layout_width="wrap_content"
                android:layout_height="18.0dip"
                android:layout_alignLeft="@id/like_icon"
                android:layout_marginLeft="26.0dip"
                android:background="@drawable/profile_notification_count_bg"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:text="11"
                android:textColor="@color/white"
                android:textSize="10.0dip"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/my_msg_comment"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/comment_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/comment_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_comment"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/comment_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_commend_light" />

            <TextView
                android:id="@id/comment_num"
                android:layout_width="wrap_content"
                android:layout_height="18.0dip"
                android:layout_alignLeft="@id/comment_icon"
                android:layout_marginLeft="26.0dip"
                android:background="@drawable/profile_notification_count_bg"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:text="999+"
                android:textColor="@color/white"
                android:textSize="10.0dip"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/my_msg_chat"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/chat_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/chat_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_chat"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/chat_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:src="@drawable/account_icon_messages_chat_light" />

            <TextView
                android:id="@id/chat_num"
                android:layout_width="wrap_content"
                android:layout_height="18.0dip"
                android:layout_alignLeft="@id/chat_icon"
                android:layout_marginLeft="26.0dip"
                android:background="@drawable/profile_notification_count_bg"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:text="999+"
                android:textColor="@color/white"
                android:textSize="10.0dip"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/my_msg_notification"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/notification_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/notification_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_notification"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/notification_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_notification_light" />

            <TextView
                android:id="@id/notification_num"
                android:layout_width="wrap_content"
                android:layout_height="18.0dip"
                android:layout_alignLeft="@id/notification_icon"
                android:layout_marginLeft="26.0dip"
                android:background="@drawable/profile_notification_count_bg"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:text="999+"
                android:textColor="@color/white"
                android:textSize="10.0dip"
                android:visibility="gone" />
        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@id/ll_msg_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/jimeng_dp_16"
        android:layout_marginTop="@dimen/jimeng_dp_10"
        android:layout_marginRight="@dimen/jimeng_dp_16"
        android:background="@color/jimeng_white"
        android:orientation="horizontal">

        <RelativeLayout
            android:id="@id/ll_my_history"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/foot_print_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/iv_foot_print_txt"
                android:layout_centerHorizontal="true"
                android:text="@string/str_footprint"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/iv_foot_print_txt"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_footprint_light" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/ll_draft_box"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/tv_draft_"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/iv_draft_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_drafts"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/iv_draft_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_drafts_light" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/ll_question_box"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/question_txt"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/question_icon"
                android:layout_centerHorizontal="true"
                android:text="@string/str_question_box"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/question_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:src="@drawable/account_icon_messages_question_light" />

            <ImageView
                android:id="@id/tv_question_box_count"
                android:layout_width="8.0dip"
                android:layout_height="8.0dip"
                android:layout_alignLeft="@id/question_icon"
                android:layout_marginLeft="33.0dip"
                android:layout_marginTop="@dimen/jimeng_dp_4"
                android:background="@drawable/common_icon_notification_small"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:textSize="10.0dip"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/user_customer_layout"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical">

            <TextView
                android:id="@id/user_customer_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/feedback_icon"
                android:layout_centerHorizontal="true"
                android:ellipsize="middle"
                android:singleLine="true"
                android:text="@string/str_help_and_feedback"
                android:textColor="@color/jimeng_black"
                android:textSize="12.0dip" />

            <ImageView
                android:id="@id/feedback_icon"
                android:layout_width="44.0dip"
                android:layout_height="44.0dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:scaleType="centerCrop"
                android:src="@drawable/account_icon_messages_help_light" />

            <ImageView
                android:id="@id/qiyu_tip"
                android:layout_width="8.0dip"
                android:layout_height="8.0dip"
                android:layout_alignLeft="@id/feedback_icon"
                android:layout_marginLeft="33.0dip"
                android:layout_marginTop="@dimen/jimeng_dp_4"
                android:background="@drawable/common_icon_notification_small"
                android:gravity="center"
                android:paddingLeft="6.0dip"
                android:paddingRight="6.0dip"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@id/rl_view_stub"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical"
            android:visibility="gone" />

        <RelativeLayout
            android:id="@id/rl_view_stub1"
            android:layout_width="0.0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:orientation="vertical"
            android:visibility="gone" />
    </LinearLayout>
</LinearLayout>

四、注意

第三步代码中,有8张UI图,一张小红点图,以及一个红框样式文件(用来在java代码实现提示效果,如不需要可删除)。

五、使用

<include layout="@layout/user_profile_all_msg_layout" />
相关文章
|
2月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
|
2月前
|
XML Java Android开发
Android自定义view之网易云推荐歌单界面
本文详细介绍了如何通过自定义View实现网易云音乐推荐歌单界面的效果。首先,作者自定义了一个圆角图片控件`MellowImageView`,用于绘制圆角矩形图片。接着,通过将布局放入`HorizontalScrollView`中,实现了左右滑动功能,并使用`ViewFlipper`添加图片切换动画效果。文章提供了完整的代码示例,包括XML布局、动画文件和Java代码,最终展示了实现效果。此教程适合想了解自定义View和动画效果的开发者。
149 65
Android自定义view之网易云推荐歌单界面
|
2月前
|
Android开发 开发者
Android企业级实战-界面篇-3
本文是《Android企业级实战-界面篇》系列的第三篇,主要介绍分割线和条形跳转框的实现方法,二者常用于设置和个人中心界面。文章通过具体代码示例展示了如何实现这两种UI组件,并提供了效果图。实现前需准备`dimens.xml`、`ids.xml`、`colors.xml`等文件,部分资源可参考系列第一、二篇文章。代码中详细说明了布局文件的配置,如分割线的样式定义和条形跳转框的组件组合,帮助开发者快速上手并应用于实际项目中。
|
4月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
707 76
|
2月前
|
XML Android开发 数据格式
Android企业级实战-界面篇-2
本文为《Android企业级实战-界面篇》系列第二篇,主要介绍三个UI模块的实现:用户资料模块、关注与粉丝统计模块以及喜欢和收藏功能模块。通过详细的XML代码展示布局设计,包括dimens、ids、colors配置文件的使用,帮助开发者快速构建美观且功能齐全的界面。文章结合实际效果图,便于理解和应用。建议配合第一篇文章内容学习,以获取完整工具类支持。
|
前端开发 程序员 开发工具
|
前端开发 程序员 开发工具
|
1月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
64 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
5月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
303 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
5月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
136 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡