小编ahm*_*_89的帖子

为什么要使用碎片?

我已经阅读了关于这个主题的文档和一些其他问题的线索,我真的不相信; 我没有清楚地看到这种技术的使用限制.

片段现在被视为最佳实践 ; 每个Activity基本上应该支持一个或多个Fragments而不是直接调用布局.

创建片段是为了:

  1. 允许Activity使用许多片段,在它们之间进行更改,重用这些单元... ==> Fragment完全依赖于Context一个活动,所以如果我需要一些通用的东西,我可以在许多活动中重复使用和处理,我可以创建我自己的自定义布局或视图...我不会关心片段会添加的额外复杂性开发层.

  2. 更好地处理不同的分辨率==>对于平板电脑/手机,如果是长时间的过程,我们可以在平板电脑的同一个活动中显示两个(或更多)片段,并在手机中逐个显示.但我为什么要使用片段始终

  3. 处理回调以在Fragments之间导航(即:如果用户登录,我会显示一个片段,否则我会显示另一个片段).===>试着看看facebook SDK登录有多少bug因为这个,要明白它真的是(?)......

  4. 考虑到Android应用程序基于活动......在Activity中添加另一个生命周期会更好地设计一个应用程序......我的意思是模块,场景,数据管理和连接将更好地设计,办法.===>这是一个过去常常看到带有Fragments愿景的Android SDK和Android Framework的人的答案.我不认为这是错的,但我不确定它会给出好的结果......它真的很抽象......

====>为什么我会一直使用它们使我的生活复杂化,编码更多?否则,如果它只是某些案例的工具,为什么它是最佳实践呢?这些案件是什么?

如果我写得太多,我很抱歉,谢谢你的时间.我希望我会引起你的注意,因为我真的需要关于这个主题的想法和经验.

最好的问候,艾哈迈德

performance android android-layout android-fragments android-fragmentactivity

6
推荐指数
1
解决办法
289
查看次数

Android 4.2 ndk:库加载崩溃:load_library(linker.cpp:750)|| soinfo_link_image || libhoudini.so || OpenCV的

我正在使用包含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)

android opencv android-ndk unsatisfiedlinkerror

4
推荐指数
1
解决办法
4606
查看次数

我什么时候应该创建String作为new()和literal?

我真的不知道何时以及为什么我应该使用String的构造函数而不是文字方式.我已经看过了,发现了一些差异的答案,这些差异并不是很清楚......但是最好的做法还是"为什么?" 什么时候?"

我知道文字定义由JVM处理,但它们不由垃圾收集器处理(如静态员工,注释......)......这真的是JVM内存的问题吗?

我在这里添加了我发现的最短比较:

创建String作为new()和literal有什么区别? 当我们使用new()运算符创建字符串时,它是在堆中创建的,而不是添加到字符串池中,而使用文字创建的字符串是在存在于堆的PermGen区域中的字符串池本身中创建的.

感谢您的时间和帮助.

java string

2
推荐指数
1
解决办法
102
查看次数