我已经阅读了关于这个主题的文档和一些其他问题的线索,我真的不相信; 我没有清楚地看到这种技术的使用限制.
片段现在被视为最佳实践 ; 每个Activity基本上应该支持一个或多个Fragments而不是直接调用布局.
创建片段是为了:
允许Activity使用许多片段,在它们之间进行更改,重用这些单元... ==> Fragment完全依赖于Context一个活动,所以如果我需要一些通用的东西,我可以在许多活动中重复使用和处理,我可以创建我自己的自定义布局或视图...我不会关心片段会添加的额外复杂性开发层.
更好地处理不同的分辨率==>对于平板电脑/手机,如果是长时间的过程,我们可以在平板电脑的同一个活动中显示两个(或更多)片段,并在手机中逐个显示.但我为什么要使用片段始终?
处理回调以在Fragments之间导航(即:如果用户登录,我会显示一个片段,否则我会显示另一个片段).===>试着看看facebook SDK登录有多少bug因为这个,要明白它真的是(?)......
考虑到Android应用程序基于活动......在Activity中添加另一个生命周期会更好地设计一个应用程序......我的意思是模块,场景,数据管理和连接将更好地设计,办法.===>这是一个过去常常看到带有Fragments愿景的Android SDK和Android Framework的人的答案.我不认为这是错的,但我不确定它会给出好的结果......它真的很抽象......
====>为什么我会一直使用它们使我的生活复杂化,编码更多?否则,如果它只是某些案例的工具,为什么它是最佳实践呢?这些案件是什么?
如果我写得太多,我很抱歉,谢谢你的时间.我希望我会引起你的注意,因为我真的需要关于这个主题的想法和经验.
最好的问候,艾哈迈德
performance android android-layout android-fragments android-fragmentactivity
我正在使用包含opencv的本机库.该库构建良好,适用于所有设备和模拟器,但不适用于Android 4.2.它崩溃了System.loadLibrary("mylib");.
该库是为armeabi-v7a armeabi x86 mips构建的(我在jnilibs文件夹中看到生成了所有这些文件)
我被困在这个bug上,因为我在互联网上找不到任何可以解释我的问题的答案.
Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_java.so",日志跟踪:
1755-1755/com.ex.app E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_java.so" needed by "libmylib.so"; caused by load_library(linker.cpp:745): library "libopencv_java.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:535)
at com.ex.app.core.MyApplication.initVippAsync(MyApplication.java:198)
at com.ex.app.core.MyApplication.onCreate(MyApplication.java:100)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
Android.mk:
LOCAL_PATH …Run Code Online (Sandbox Code Playgroud) 我真的不知道何时以及为什么我应该使用String的构造函数而不是文字方式.我已经看过了,发现了一些差异的答案,这些差异并不是很清楚......但是最好的做法还是"为什么?" 什么时候?"
我知道文字定义由JVM处理,但它们不由垃圾收集器处理(如静态员工,注释......)......这真的是JVM内存的问题吗?
我在这里添加了我发现的最短比较:
创建String作为new()和literal有什么区别? 当我们使用new()运算符创建字符串时,它是在堆中创建的,而不是添加到字符串池中,而使用文字创建的字符串是在存在于堆的PermGen区域中的字符串池本身中创建的.
感谢您的时间和帮助.