干什么您的工具型产品规模做十分的小还碍事显现?

贰 、工具型产品的广阔痛点

工具作为网络产品最原始的成品形态之一,发展到现在已经早已变成苏禄海中的巴伦支海,许多领域已经形成平安的格局,比如PC安全、浏览器等,长期内不会现出大的变型。那一个是大功告成的工具型产品,当然越来越多的产品还在干扰规模和突显多个点上。

前言

Fragment想必我们不素不相识吧,在日常费用中,对于Fragment的采取也很频仍,将来主流的APP中,基本的架构也都以多个主页,然后各类Tab项用Fragment做布局,分裂采取做切换,使用起来也利于。不过否对它有充裕的认识吗,谷歌(Google)援引用Fragment来替代Activity,但又从未明确性说为何要用Fragment来顶替Activity,那里就掀起争议了,那到底是要不要用,是不是采取Fragment完全替换Activity真的比常规开发形式更行吗?要是要用的话,那须求精晓怎么要利用Fragment,Fragment是哪些,它的生命周期怎么着,如何行使,通讯又是什么样,有什么样毛病吗?带着那几个题材,我们挨个去解读。

3.流量显示

流量变现是网络行业不管哪一种的出品最简便最通用的一种商业化方式,对于具有拥有用户规模的成品的话,都可以走流量变现的点子,而且貌似此前所波及,工具型产品是最不难做到海量用户规模的项目。

多几人一提到流量变现就悟出是满天飞的广告,其实并非如此。流量变现的有血有肉方式分为原生广告、电商导流、应用分发等。行业内部享誉的三级火箭情势正是将流量变现挖掘到了无限,固然搜狗输入法自己难以毛利,可是积累起特大的用户量之后带来具备商业价值的浏览器产品,再经过浏览器产品和付属于浏览器之上的网址导航工作去做2回流量分发,换取更大的商业价值,那比搜狗输入法自个儿去弹广告的收入要强得多。

一个产品若是走流量变现的商业情势,最好能在用户完毕对产品的体会定型从前就提前规划,不然很简单造成用户反感。很多APP现在早已有了开发银行闪屏广告,即运行时3-5秒显示,那几个地方莫过于能够看作运行位去规划,先用人工运转的点子参加,用「心理化运转」的主意先得到用户的确认,等到了商业化运行的阶段,分批次逐步渗入广告方式,那比简单暴虐直接一开首正是广告让用户的接受程度要好得多。

流量变现的款型供给靠思想指点,让用户习惯接受广告那种流量分发的形式须求产品经营和产品运行去做精心设计。

举一个非工具型产品的例证,微信朋友圈的广告也是第壹级的流量变现,但是用户对于情侣圈广告的接受程度很高。那出自广告上线之初,微信团队策划了「唯有和广告主品牌气质相投的用户才能看出广告」的玩法,而首先期中微信只选拔了BMW、Coca Cola、VIVO四个著名品牌,看到Porsche广告的用户被认为是BRABUS地下消费人群的,那让用户发生了一种莫名的自豪感和虚荣心。自此,看广告成了一种习惯,用户对于别的平台简单残酷的广告无比反感抵制,对于微信朋友圈广告俺还很少见到人吐槽。那才叫站着把钱挣了,广告主知足,用户还欢乐。

总结一下:

所以当大家谈工具型产品范围的时候只需查验以下七个难题即可:

a.集镇圈定范围是还是不是充分大?化解的是公众需要依旧小众必要?

b.用户对您的消除方案接受程度高呢?

c.产品的分野是哪些?竞品能自由抢走你的用户吗?

d.怎样消除用户停留时间短的标题?怎么着抓好利用频次?

e.是或不是营造起用户难以割舍的根本因子?

至于变现:工具型产品表现的前提基础是规模,变现的方法有广大,不管是工具本身付费,增值服务收费,照旧流量变现,打磨好产品本身最关键。而最普遍的流量变现的进度一样供给运转,简单严酷的法门必遭用户反感与抗拒。

END

Fragment怎么用

前方介绍了半天,不耐烦的人会说,这么多废话,也有失的到底是何等采取,终归我们是开发者,要求的使用格局,那么今后就来说说用法如何呢。二种艺术:静态用法和动态用法。

静态用法

1、继承Fragment,重写onCreateView决定Fragemnt的布局

二 、在Activity中宣示此Fragment,就当和普通的View一样

第①是布局文件:fragment1.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:background="#00ff00" >  

    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="This is fragment 1"  
        android:textColor="#000000"  
        android:textSize="25sp" />  

</LinearLayout>  

能够见见,那几个布局文件12分不难,唯有3个LinearLayout,里面加入了3个TextView。大家再新建2个fragment2.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:background="#ffff00" >  

    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="This is fragment 2"  
        android:textColor="#000000"  
        android:textSize="25sp" />  

</LinearLayout>  

接下来新建1个类Fragment1,那几个类是后续自Fragment的:

 public class Fragment1 extends Fragment {  
    @Override  
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
        return inflater.inflate(R.layout.fragment1, container, false);  
    }  
} 

能够见到,在onCreateView()方法中加载了fragment1.xml的布局。同样fragment2.xml也是一律的做法,新建3个Fragment2类:

public class Fragment2 extends Fragment {  
    @Override  
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
        return inflater.inflate(R.layout.fragment2, container, false);  
    }  
}  

然后打开或新建activity_main.xml作为主Activity的布局文件,在里头到场多个Fragment的引用,使用android:name前缀来引用具体的Fragment:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:baselineAligned="false" >  

    <fragment  
        android:id="@+id/fragment1"  
        android:name="com.example.fragmentdemo.Fragment1"  
        android:layout_width="0dip"  
        android:layout_height="match_parent"  
        android:layout_weight="1" />  

    <fragment  
        android:id="@+id/fragment2"  
        android:name="com.example.fragmentdemo.Fragment2"  
        android:layout_width="0dip"  
        android:layout_height="match_parent"  
        android:layout_weight="1" />  

</LinearLayout>  

末尾新建MainActivity作为程序的主Activity,里面包车型地铁代码十分不难,都是自动生成的:

public class MainActivity extends Activity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
    }  
}  

现行我们来运作3回程序,就会看到,一个Activity很谈得来地包罗了七个Fragment,那五个Fragment平分了整套显示器,效果图如下:
图片 1

动态用法

地点仅仅是Fragment简单用法,它真的有力部分是在动态地添加到Activity中,那么动态用法又是什么样呢?

要么在静态用法代码的功底上修修改改,打开activity_main.xml,将内部对Fragment的引用都剔除,只保留最外层的LinearLayout,并给它添加二个id,因为我们要动态添加Fragment,不用在XML里添加了,删除后代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/main_layout"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:baselineAligned="false" >  

</LinearLayout>  

然后打开MainActivity,修改当中的代码如下所示:

public class MainActivity extends Activity {  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        Display display = getWindowManager().getDefaultDisplay();  
        if (display.getWidth() > display.getHeight()) {  
            Fragment1 fragment1 = new Fragment1();  
            getFragmentManager().beginTransaction().replace(R.id.main_layout, fragment1).commit();  
        } else {  
            Fragment2 fragment2 = new Fragment2();  
            getFragmentManager().beginTransaction().replace(R.id.main_layout, fragment2).commit();  
        }  
    }  

}  

看看了没,首先,大家要赢得显示屏的肥瘦和冲天,然后进行判断,纵然显示屏宽度超越中度就添加fragment1,要是中度超越宽度就添加fragment2。动态添加Fragment重要分为4步:

1.获得到FragmentManager,在Activity中能够直接通过getFragmentManager获得。

2.敞开多少个政工,通过调用beginTransaction方法开启。

3.向容器内插手Fragment,一般接纳replace方法实现,须要传入容器的id和Fragment的实例。

4.提交事务,调用commit方法提交。

最近运作一下程序,效果如下图所示:

图片 2

图片 3

要想治本 Activity 中的片段,要求采取 FragmentManager。要想取得它,要求Activity 调用 getFragmentManager()。

选取 FragmentManager 执行的操作包涵:

  • 由此 findFragmentById()(对于在 Activity 布局中提供 UI
    的片段)或 findFragmentByTag()(对于提供或不提供 UI 的一部分)获取
    Activity 中留存的一部分
  • 通过 popBackStack()将有个别从重回栈中弹出
  • 因此 addOnBackStackChangedListener() 注册二个侦听重回栈变化的侦听器

也得以动用 FragmentManager 打开3个 FragmentTransaction,通过它来进行有个别事情,如添加和删除片段。

2.基础意义免费+增值服务收费

让用户为祥和分享到的产品或劳务一向付费,那既是最节省的商业情势。对于想兼顾用户规模和商业化收益的制品以来,基础意义免费+增值付费收费的商业格局就很符合,而那里的关键在于增值服务是不是真正值得用户来购销付费。

此类形式的代表性产品正是伊夫rnote,高达4%的用户付费率让很多产品羡慕连连,基础的每月60M免费上传空间,更大空间需每月付费12元。曾经强烈的云存款和储蓄大战把国内云存款和储蓄产品的空间付费价值一棍子给打死了,但是在国外云存储的高祖Dropbox和谷歌(Google)Drive缺依靠空间体量付费的形式活得很自然。

增值服务收费的格局源于对用户的分支须要挖掘,增值项目必将是和工具原本的主干职能强相关的。对于社交型产品的话,微信和陌陌首创的神采付费方式在工具型产品上就不适用。

Fragment为啥要用

Fragment是Android 3.0
(Honeycomb)被引入的。首要指标是为着给大显示屏(如华为平板)上进一步动态和灵活的UI设计提供协理。由于机械总结机的显示屏比手提式有线话机的荧屏大过多,因而可用以组合和调换的UI组件的空间更大,利用Fragment达成此类设计的时,就无需治本对视图层次结构的扑朔迷离更改。

因此将 Activity 布局分成片段,您能够在运维时修改 Activity 的外观,并在由
Activity
管理的回到栈中保留那个改变。假诺单纯唯有Activity布局,那是不够的,不仅在手机上有一套布局,同时在平板上还亟需统一筹划一套布局,那样维护起来也麻烦,代码上也有肯定的冗余,对于APP包的轻重也有一定的压力。Fragment的优势是布局在不一致装备上的适配。

比如:

图片 4

从图中大家得以看看,在机械中,三个Activity
A包括了七个Fragment,分别是Fragment A和Fragment
B,但在三哥大中呢,就供给三个Activity,分别是Activity A包涵Fragment
A和Activity B包罗Fragment
B。同时每一个Fragment都装有友好的一套生命周期回调方法,并分别处理自身的用户输入事件。
因而,在机械中选用一个Activity 就足以了,左边是列表,左侧是内容详情。

除外,使用Fragment还有那样多少个方面优势:

  • 代码复用。尤其适用于模块化的费用,因为五个Fragment可以被四个Activity嵌套,有个共同的事务模块就足以复用了,是模块化UI的美艳组件。
  • Activity用来治本Fragment。Fragment的生命周期是依托到Activity中,Fragment能够被Attach添加和Detach释放。
  • 可控性。Fragment能够像一般对象那样自由的创始和操纵,传递参数特别简单和造福,也不用处理体系有关的业务,显示格局、替换、不管是全部如故有个别,都足以做到相应的更改。
  • Fragments是view
    controllers,它们包含可测试的,解耦的业务逻辑块,由于Fragments是营造在views之上的,而views很不难完结动画效果,因而Fragments在显示屏切换时怀有更好的支配。

见过许多工具型产品,做了好多年依旧停留在「小而美」的用户量阶段。小而美那一个词我早已很欢乐,代表着一种心态,但那一个年看来越来越多已经小而美的产品因为用户量紧缺,没有好的商业化格局,最终只可以结束更新,稳步被人忘却。

Fragment是或不是很周到

因为Fragment是由FragmentManager来治本,每二个Activity有二个FragmentManager,管理着3个Fragment的栈,Activity是系统级别的,由系统来管理ActivityManager,栈也是系统范围的。而Fragment则是各种Activity范围内的,所以在行使Fragment的时候也有几点要留心。

  • 同一个Activity中,只好有一个ID或TAG标识的Fragment实例。
    这很不难掌握,同2个范围内,有标识的实例肯定是要唯一才行(不然还要标识干嘛)这几个在布局中经常犯错,在布局中写Fragment最好永不加ID也许TAG,不然很不难并发区别意成立的错误。小编的尺度是要是身处布局中,就绝不加ID和TAG,要是急需ID和TAG就全用代码控制。创立新实例前先到FragmentManager中搜寻一番,那也正是有标识的意义所在。
  • 二个Activity中有贰个Fragment池,实例不必然会被销毁,或者会保留在池中。
    其一跟第贰点差不多。就好比系统会缓存Activity的实例一样,FragmentManager也会缓存Fragment实例,以有益和增加速度再一次体现。
  • FragmentManager的成效范围是整整Activity,所以,某二个搭架子ID,不能够重复被Fragment替换。
    常见展现Fragment有两种办法,一种是层叠到某些布局上,恐怕把某部布局方面包车型客车Fragment替换掉,可是这几个布局无法冒出二遍,比如布局A中有ID为id的区域,要来得为Fragment,此布局A,只可以在多个Activity中突显3个,否则第四个id区域不可能被Fragment成功替换。因为虽有一个ID布局的实例,但ID是同一的,对FragmentManager来说是一样的,它会认为唯有二个,因为它看的是布局的ID,而不是布局的实例。
  • Fragment的生命周期反应Activity的生命周期。
    Fragment在展示和剥离时会走贰次完整的生命周期。其它,正在展现时,就跟Activity的一致,Activity被onPause,里面包车型大巴Fragment就onPause,以此类推,因而拉动的题材就算,比如您在onStart()里面做了有的作业,那么,当宿主Activity被挡住,又出现时(比如接了个电话),Fragment的onStart也会被高到,所以你要想开,这几个生命周期不单单在突显和剥离时会走到。
  • Fragment的可知性。
    以此难点出现在有Fragment栈的时候,相当于说各种Fragment不了然本身是或不是真的对用户可见。比近期后是Fragment
    A,又在其上边显示了Fragment
    B,当B呈现后,A并不知道本人上边还有3个,也不亮堂自身对用户不可知了,同样再有一个C,B也不知。C退出后,B依旧不知自个儿已在栈顶,对用户可见,B退后,A也不知。相当于说Fragment展现或然退出,栈里的其余Fragment不能感知。那一点就不如Activity,a被b盖住后,a会走到onStop(),同样c显示后,b也能通过onStop()感知。Fragment可以从FragmentManager监听BackStackState的变通,但它只报告您Stack变了,不告诉你是多了,如故少,还有你处的职分。有五个化解方案正是,记录页面包车型大巴Path深度,再跟Fragment所在的Stack深度来比较,假如相同,那么这一个Fragment就在栈顶。因为各种页面包车型客车Path深度是稳定的,而Stack深度是不成形的,所以那些能准确的判断Fragment是或不是对用户可知,当然,那些仅针对任何页面有效,对于布局中的三个区域是行不通的。
  • Fragment的事件传递。
    对此层叠的Fragment,其实就也正是在3个FrameLayout里面添加一堆的View,所以,若是处在顶层的Fragment没处理点击事件,那么事件就会向下层传递,直到事件被处理。比如有1个Fragment
    A和B,B在A下边,B惟有TextView且没处监护人件,那么点击B时,会发觉A里的View处理了事件。这几个对于Activity也不会发生,因为事件无法跨窗体传播,上面包车型地铁Activity没处管事人件,也不会传给上边包车型大巴Activity,即便它可知。化解之法,就是让地点的Fragment的根布局吃掉事件,为各种根ViewGroup添加onClick=“true”。
  • 与第3方Activity交互。与第3方互相,仍要采纳Android的正规化startActivityForResult()和onActivityResult()这三个法子来展开。但对此Fragment有个别事情需求专注,Fragment也有那三个点子,但是为了能科学的让Fragment收到onActivityResult(),需求:
  1. 宿主Activity要促成3个空的onActivityResult(),里面调用super.onActivityResult()
  2. 调用Fragment#startActivityForResult()而不是用Activity的
    当然,也可以直接行使Activity的startActivityForResult(),那样的话,就不得不在宿主Activity里处理回来的结果了。

3.广告是还是不是相符全体的工具型产品?

工具型产品作者是为了进步成效而存在的,而广告会对用户产生干扰,越发是当今移动APP狭小的用户手机荧屏上,广告的困扰与工具的效用初心齐驱并骤,作者也看出过部分产品在品味广告流量变现时面临用户能够的抵制和口诛笔伐,进而下降了成品口碑和用户留存率。假诺那时有八个稍微干净点的竞品,在基础功能差异相当小的情景下,用户很简单就完事了向可替代方案迁移的长河。再让用户回来?难。除非竞品也学坏了,届时用户就得两害之中取其轻,哼,多少个都以流氓。

占据7/10市集份额的搜狗输入法,曾经是黎民装机必备的软件和输入法品类的代名词,但因为输入法那种工具产品自个儿很难显现,然后不断弹广告平昔到把部分用户送给了后来者的百度输入法,而百度输入法作为青出于蓝短短几年已经攻占了2/10的市集份额。

有一对事先一贯被叫做「产业界良心」的产品,一旦开首做广告,用户是很难接受的,而且不会承认集团的那套「作者免费了如此长年累月,有如此多职员和工人需求养,不赚钱我喝东西风去吗」看起来很公正的逻辑。而那么些合营社也会很可疑,为何人家都得以耍流氓?而自作者只是弹个广告窗就被如此多人骂?

当产品追求的靶子和小购买销售表现进度中的目的违背时,商业形式就不会走地太顺遂。

除开广告,还有没有此外更好的表现情势?

Fragment通信

就算 Fragment 是当做单身于 Activity的指标实现,并且可在多少个 Activity
Nelly用,但Fragment 的给定实例会直接绑定到含有它的
Activity。具体地说,Fragment 能够透过 getActivity() 访问 Activity实例,并轻松地推行在
Activity 布局中寻觅视图等义务。如:

View listView = getActivity().findViewById(R.id.list);

如出一辙地,Activity
也得以使用 findFragmentById() 或 findFragmentByTag(),通过从 FragmentManager 获取对 Fragment 的引用来调用Fragment中的方法。例如:

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);

创建对 Activity 的轩然大波回调

在某个景况下,恐怕须要通过与 Activity
共享事件。执行此操作的3个好格局是,在Fragment 内定义三个回调接口,并要求宿主
Activity 达成它。 当 Activity
通过该接口收到回调时,能够依照须求与布局中的别的Fragment共享那一个音信。

比如,假诺二个情报应用的 Activity 有七个Fragment
,2个用于体现小说列表(Fragment A),另一个用来显示小说(Fragment
B)—,那么Fragment A必须在列表项被选定后告诉
Activity,以便它告诉Fragment B 突显该作品。
在本例中,On阿特icleSelectedListener 接口在有个别 A 内评释:

public static class FragmentA extends ListFragment { 
    public interface OnArticleSelectedListener { 
        public void onArticleSelected(Uri articleUri);
    } 
} 

接下来,该Fragment的宿主 Activity
会完毕 OnArticleSelectedListener 接口并取而代之 onArticleSelected(),现在自Fragment
A 的轩然大波通报Fragment B。为保证宿主 Activity 完毕此界面,Fragment A
的 onAttach() 回调方法(系统在向 Activity
添加Fragment时调用的法子)会透过更换传递到 onAttach() 中的 Activity 来实例化 OnArticleSelectedListener 的实例:

public static class FragmentA extends ListFragment { 
    OnArticleSelectedListener mListener;
    @Override 
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try { 
            mListener = (OnArticleSelectedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
        } 
    } 
} 

一旦 Activity
未兑现界面,则有的会抓住 ClassCastException。达成时,mListener 成员会保留对
Activity 的 OnArticleSelectedListener 完结的引用,以便Fragment A
能够由此调用 On阿特icleSelectedListener 界面定义的点子与 Activity
共享事件。例如,尽管Fragment A
是 ListFragment 的1个扩张,则用户每便点击列表项时,系统都会调用Fragment中的 onListItemClick(),然后该方法会调用 onArticleSelected() 以与
Activity 共享事件:

public static class FragmentA extends ListFragment {
    OnArticleSelectedListener mListener;
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        Uri noteUri = ContentUris.withAppendedId(ArticleColumns.CONTENT_URI, id);
        mListener.onArticleSelected(noteUri);
    }
}

4.文化总体性较弱,具备海外市集升高的力量

自从UC浏览器、WiFi万能钥匙、Clean
Master、Go桌面、APUS等进口厂商把这几个系统工具型产品推向国外商场取得巨大成功后,出海成为不少工具类产品厂商近两年的基本点进行工作。

相对比之下,微信这种社交产品想出海反而没那么不难,文化的壁垒使得微信很难打入非夏族圈,没有国内那般用户原始积累资本,与外国同类产品竞争时也并无优势。

Fragment生命周期

如图:

图片 5

那张图是Fragment生命周期和Activity生命周期相比较图,能够见到双方依然有那么些相似的地点,比如都有onCreate(),onStart(),onPause(),onDestroy()等等,因为Fragment是被托管到Activity中的,所以多了五个onAttach()和onDetach()。那里讲讲与Activity生命周期不一致的措施。

onAttach()

Fragment和Activity建立关联的时候调用,被增大到Activity中去。

onCreate()

系统会在创建Fragment时调用此方法。能够初阶化一段财富文件等等。

onCreateView()

系统会在Fragment首次绘制其用户界面时调用此办法。 要想为Fragment绘制
UI,从该措施中回到的 View 必须是Fragment布局的根视图。假使Fragment未提供
UI,您能够回到 null。

onViewCreated()

在Fragment被绘制后,调用此措施,能够起始化控件能源。

onActivityCreated()

当onCreate(),onCreateView(),onViewCreated()方法执行完后调用,也便是Activity被渲染绘制出来后。

onPause()

系统将此方式作为用户距离Fragment的第三个信号(但并不一而再意味着此Fragment会被销毁)进行调用。
通常可以在此措施内肯定在此时此刻用户会话甘休后依然有效的任何改动(因为用户可能不会重回)。

onDestroyView()

Fragment中的布局被移除时调用。

onDetach()

Fragment和Activity解除关系的时候调用。

但需求注一点是:除了onCreateView,别的的有着办法假设你重写了,必须调用父类对于该情势的落实。

再有相似在运维Fragment的时候,它的生命周期就会执行那多少个方法。

图片 6

直接以来,规模做一点都不大、用户粘性低、可替代性强、缺乏显然的商业方式,都被认为是工具型应用的后天不足,但回归商业面目,没有可持续性的增高与表现方式,产品最后也会理所当然走向衰老。

Fragment是什么

说了半天的Fragment,也来看那般数次Fragment这一个名词现身,那么Fragment到底是何许东东吗?定义又是何许?

Fragment也得以叫为“片段”,但本人觉着“片段”汉语叫法有点生硬,照旧保持叫Fragment相比好,它能够表示Activity中的行为或用户界面部分。大家得以在2个Activity中用八个Fragment组合来创设多窗格的UI,以及在多少个Activity中重复使用有些Fragment。它有谈得来的生命周期,能承受自个儿的输入,并且能够在
Activity 运转时添加或删除Fragment(有点像在不一样 Activity 中重复使用的“子
Activity”)。

大致来说,Fragment其实能够精晓为3个独具友好生命周期的控件,只不过那么些控件又有点特别,它有和好的拍卖输入事件的力量,有自身的生命周期,又无法不依靠于Activity,能相互通讯和托管。

3.工具型产品对于创业团队来说起步相比较较便于

诸多创业团队在选择创业时精选从工具型产品入手,那是一条起步相对相比便于的路。一方面工具型产品本人以人机交互为主,初期把任何生机勃勃集中在工具宗旨成效自身的磨擦上即可,冷运维阶段比较便于运营。相比之下社交型产品对于冷运行、社交关系链的营造、社交用户不断活跃激励都有一定运行难度。而内容型产品,日益完善的版权爱护机制使得靠盗版起家的制品起首衰落,越发是音乐录像内容领域,拼内容能源、拼版权、拼资金最终变成巨头们的主战场,创业共青团和少先队在无资金优势的景况下根本插不进入。另一方面,工具型产品分类多,不一致种类之间针锋相对独立,产品丰盛好即有做成种类里霸主的时机。

小结

在用法的代码部分参考郭神的博客,感觉郭神在代码讲解部分通俗易懂,看起来也便于。总而言之,在应用Fragment也有一部分注意事项,不是那么完美的,即使谷歌引进大家用Fragment来取代Activity来采取,我们也的确那做了,未来中央主流的APP也都以少量Activity+浩大Fragment,但也供给防止有些坑慎入

 

本文章摘要自:https://www.cnblogs.com/cr330326/p/5712022.html

所谓工具型产品,就是为解决特定某三个很引人注目具体的要求而留存的工具,而工具本身自然是和「功效」关联在协同的。所以工具型产品最基本的功能正是帮用户进步功能、节省时间精力。

目录

  • Fragment为何要用
  • Fragment是什么
  • Fragment生命周期
  • Fragment怎么用
  • Fragment通信
  • Fragment是还是不是很全面
  • 小结
  • 参考地址

工具型产品是个大坑,但全体人都在往里面跳。

1.范畴做非常的小

率先是规模本人能做多大要看圈定的市集领域所富含的人群基数,那是天花板。任意叁个互连网产品都以有天花板的,固然是系统工具那种最尾部通用的工具,网络好友规模、移动网络覆盖率也是它的天花板。而垂直领域特别分明,比如股票领域的同花顺,官方宣传国内A股只有股民玖仟万,那正是天花板,当然它也能够靠横向延伸美国股票香港股市等市镇,把天花板往上提。

第2,工具作为消除用户特定要求的一种工具,差异产品所提供的缓解方案也是例外的,用户对于切入点的接受程度决定了。以白崎曾经做过的搭档办公领域为例,商场上有以种类作为联合进行切入点的,也有以IM作为共同切入点的,但当时自身所运维的出品选拔的是以文书档案作为一道切入点,后来事实评释Teambition那种以系列作为切入点的款型最符合用户的一只必要,因此它成功了。用户对于工具型产品化解方案的接受程度决定了成品是不是做到从0到1的历程。

其三,工具型产品的可替代性是享有产品类别里最强的。PC端的安全软件、浏览器、云存储,都曾经历过濑户内海血拼的阶段。移动端的手提式有线电话机帮手、手提式有线电话机卫士等也是竞争最霸气的。用户在工具型产品上的精选实在有诸多,假如本人不喜欢用360家的产品,能够换金山、百度、腾讯家的。在热点工具类产品里,用户相对是买方商场,须要远大于须要,你得呱呱叫伺候着等着用户来临幸。工具型产品规模做十分小的另一大原因就在于产品的不可替代性壁垒建立。

第6,工具型产品一般用户停留时间较短。用户对于工具型产品有二个很显然的应用境况,即作者在怎么的情景下要求采纳工具完结某项指标性很强的动作,用完即退出。比如打开相机拍录,拍完了修一下图然后关掉,整个经过都有醒指标一步一步动作。那与内容型产品有个别分化,用户会因为被内容引发而在潜意识状态下消耗掉很多时刻。此时网络产品的竞争放在1个广义的定义上实在早已是和兼具产品在竞争了,因为我们都在抢占用户有限的时日和注意力。张小龙说「好的出品要用完即走」,而工具型产品面临的题材是一旦用户用完就走,没办法发生产品附加价值。

浏览器这类产品也很有趣,在PC时代浏览器就算也是属于工具型产品,但占据了很要紧的地方和较长的用户时间,所以具有很高的制品价值。但到了移动网络时期,APP分流了原来浏览器的重重职能,用户对于浏览器的使用意况降低了好多,所以看到后天的手提式有线电电话机浏览器2个个都做成了消息客户端也挺可悲的,都是为着用户停留时间长度。

再有3个很有趣的意况是,以往工具型产品加社区宛如成了转型的标配。实际上那样做的有95%都会战败,用户如故是用完即走。为啥会是这么的结果?那里的逻辑在于,原本扩大社区的出发点是意在通过社区拉长用户在成品内的停留时间长度和黏性,以社交化的章程抓好用户活跃度,但实则景况是社区冷运行是更大的题材,社区功效有了,但相互沟通的用户寥寥无几。多数工具型产品的营业人士并没有社区冷运营的经历,对于工具型产品而言,运行承担的角色越来越多在新用户引入方面,用户进入产品后发出的是人机交互,而非人人交互。没有顺遂实现冷运行阶段就会代表社区化转型的破产。

第伍,工具型产品的用户黏性差。当您去行使市镇查看用户评价的时候,看到有用户在QQ的下载页评论说“差评!卸载!”,那话多半是威吓人的,他相当于说说而已。但一旦用户在三个工具型产品上边说要卸载,那多半是实在卸载了。很多个人吐槽今日头条和讯的用户体验太渣,但没有人因为那几个渣体验而不用博客园。工具型产品的用户稍有不爽,立马卸载毫不留情,而且马上就能找到新欢。为啥?因为社交产品上有用户的张罗关系链,用户舍不得丢。录制网站上的广告即使多到令人抓狂,有些录像财富唯有一定的网站才有。而工具型产品,对于用户来说更换花费十分低,何况身后备胎云集。

2.缺少显著的商业化变现格局

在中原直接向用户收费的情势过去径直行不通,所以一般是先提供免费服务,积累多量用户,然后经过广告导入恐怕鼓励一部分用户花钱得到相对更好的服务而收获毛利。

网络行业里有一种想当然的「只要本身有了海量用户,就不愁没有表现格局」,那属于战略上的偷懒,还就有上亿用户的产品,但固然不得已变现的案例。全数在创业初期即称先暂不考虑商业表现的铺面,一部分是藏着掖着不甘于讲,另一有个别就是从未想知道,只晓得先往前走,走一步看一步,碰巧能遇上3个好机遇形式就能不负众望,但也难免会平素遇不到,尽管遇见了也有大概被原有的制品架构所限不得不去调整产品,那些都以有风险的。

故而白崎认为商业方式这种事物,在产品设计的初期早一点考虑和统一筹划进产品方案中,产品最初和高速成遥远能够暂时不爱慕营业收入,专心发展用户就好,
但不意味着能够完全不想清楚。

墨迹天气便是最好的例证,听说每年CCTV广告的标王正是天气预先报告此前一分钟的命宫,为何同为满足用户天气需求的真迹天气就是挣不到钱?根本原因在于用户停留时间太短,完整的天气查询操作步骤包括打开APP、看一眼天气、然后退出关掉。一挥而就,10分钟时间丰硕,对于梦想走广告流量变现的真迹天气的话,远远不足以支撑起那种量级产品的商业化。

工具型产品商业化面临最严俊的题材就是离「钱」太远,所以绝超过八分之四工具型产品选拔的是广告流量变现形式。广告流量变现日常分为品牌广告与成效广告两大类,对于地点案例里的手迹天气的话,曾经也尝尝过效果广告,但转化率极差,叁个月内通过功用广告收入才几万块钱,那种广告还不如不做。而品牌广告对于产品的日活跃数据须要极高,而且亟需找到相匹配的广告客户,经常是大客户。

1.用户痛点共性集中,具备普遍性

工具型产品的前三类一般都以芸芸众生皆有的必要,系统工具、生活娱乐工具、工作学习功效工具,伴随着一个互连网用户从接触电脑到手提式有线话机的全经过,甚至全数人都觉得要求。

早些年的电脑病毒泛滥,让许多家庭用户养成了进货付费杀毒软件出品的习惯。安卓手提式有线电话机用久了变卡变慢发热,基本也都以通病,也是环球安卓用户一起的须要。自拍就要用自带美颜格局的相机、出门查路线就用百度地图,查天气就用墨迹天气,这几个制品背后都有一个很特定的显明要求,工具厂商只要帮衬用户完毕了那个指标,就到位了和睦的工具价值创设。

对于工具型产品,白崎平日分为四大类:系统工具、生活娱乐工具、工效工具、垂直领域专业性工具。系统工具很好精晓,根植于PC、手提式有线话机系统本身的,如安全、清理、省电、计算器、手电筒等制品。生活娱乐工具,包涵浏览器、输入法、地图、相机、音乐摄像播放、下载、支付、天气、壁纸等制品。工作学习功用工具,包涵办公、邮箱、输入法、翻译、扫描、记录、提示、便签、存款和储蓄等制品。垂直领域专业性工具是在通用市镇需要逐步饱和后,加强某贰个细分领域的须要做到极致也能发出巨大价值的园地,如画产品原型的Axure,做搭档办公的Slack,股票领域的同花顺,还有一多级围绕微信发出的H5制作工具、图文页排版工具,诸如此类。

壹 、为啥如此多工具型产品?

也见过不少工具型产品,凭借首发市场优势和人数红利,以初期能够的用户体验积累了海量用户,却不曾好的呈现途径,让厂商真是感到小婴孩心中苦但却不说。工具型产品中,大部分别得到得用户不难,但用户黏性差,再往下商业化就更难,那并不是单一产品境遇的题材,而是工具性产品的性格决定了其前景向上的窘况。固然是谷歌那种又有钱又有心绪的极品巨头,最后不也扬弃了谷歌Reader不是么。

移动APP排名榜TOP第10中学,工具型产品便占了陆人,个中不乏BAT三家旗下的成品,也有创业公司注重单个爆款工具成功挤进前列。

1.工具付费

工具型产品对于用户来说最注重的市场总值就在于工具本人对于功能的升官,由此工具本身其实是足以当作付费点的。在国外,纯工具型的软件多是借助付费方式而取得受益。比如微软的Office,Adobe的Photoshop等,从卖软件盒子到卖Lisense(授权激活码),再到运动互连网时期APP
Store上的APP付费下载。

面向C端用户的工具付费形式以后早就比较少,而在境内一向走用户付费格局的出品都死掉了,而且被誉为是耄耋之年形式,比如曾经极具代表性的付费杀毒行业,3个360出来就把二个行业给打垮了。

但在面向B端的商海上,工具付费的逻辑依然程立。但不再是不过售卖Lisense,付费的逻辑平常换到了「免费试用N天」,借助于C端用户获得时常用的免费打法,先让用户来感受使用,具备效能升高价值的工具平日用户是甘心付费的。而且相比于国内C端用户付费意愿差的意况,B端市镇对此利用付费工具升高集团效能那件事上的承认度是比较高的。

以当下供销合作社市集最盛名的Teambition为例,全部用户即可免费注册使用14天,先感受叁个好的创作工具援助更好地管理协会成员,高效化项目合营的进度,等到用户感受到了价值,再来让用户付费,此时的付费转化率就比最起始一贯收费要高很多。

③ 、工具型产品的商业化形式塑造

不无商业化情势的营造首先都要马到功成用户价值的积聚,没有用户价值的制品最终也未曾商业价值。

2.市镇体量大

工具型产品自然具备用户广泛通用性的风味,所以具有了收获海量用户的基本功。伴随着中华夏族民共和国的人数红利,已经有不少工具型产品进入上亿用户俱乐部了。截至二零一六年五月,中夏族民共和国网上好友规模已经达6.68亿,不断延展的增量市镇是工具型产品一定的囊中之物。

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注