小编Dar*_*han的帖子

基线配置文件 x R8/Proguard

我一直在尝试使用 Android 的 Baseline Profile 和 MacroBenchmark 库来提高应用程序性能。

我的问题是,建议MacroBenchmark 的构建类型尽可能接近构建release,但符合-dontobfuscateproguard 规则。
如果生产应用程序将通过obfuscatedminification那么 Baseline Profiler 如何帮助提高应用程序性能,因为baseline-prof.txt应用程序classes.dex文件中的类可能完全不同。

Profiler 和 Proguard/R8 之间是否存在某种内部映射?

android proguard android-r8 androidx baseline-profile

12
推荐指数
1
解决办法
1228
查看次数

带有 `?` 的可空变量 vs. lateinit var

在 Kotlin/Android 活动/片段中定义全局变量的最佳方法是什么?

当您应该使用这 2 种方法来定义全局变量时,有哪些不同的场景:

var viewpager: CustomViewPager? = null 
Run Code Online (Sandbox Code Playgroud)

或者

lateinit var viewpager: CustomViewPager
Run Code Online (Sandbox Code Playgroud)

?

如果我使用前者,我将不必在我的代码中检查 null。例如,如果我用于lateinit以下内容:

viewpager = activity?.findViewById<CustomViewPager>(R.id.viewpager) 那么我将不得不检查空值。

android kotlin

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

单独 Isolate 内的 Firestore 侦听器

我有一个单独的文件isolate,它通过流快照监听cloud-firestore文档。
为此,我使用了isolate_handler效果很好的包。因此,要在隔离内部
使用,需要创建一个新的 Firebase 应用程序实例。cloud-firestoreawait Firebase.initializeApp()

唯一的问题是通过调用杀死隔离时出现的,IsolateHandler.kill(name);
看起来整个 Firebase 实例在隔离被杀死时也从本机端被杀死。

这是实现的一个小表示:

static launchStreamIsolate(Function(IsolatedQuerySnapshot) snapshot) {
    if (!_isolateHandler.isolates.containsKey("listener"))
      /// _startStream is a function that listens to the changes on Firestore.
      _isolateHandler.spawn(_startStream,
          name: "stream",
          onInitialized: () => _isolateHandler.send("startListening", to: "stream"),
          onReceive: (json) {
            _isolateHandler.send("stopListening", to: "stream");
            snapshot.call(IsolatedQuerySnapshot.fromJson(json));
          });
  }
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我在小部件的回调中调用以下方法时dispose(),应用程序崩溃:

static disposeOff() async {
    _isolateHandler.isolates.forEach((key, value) => _isolateHandler.kill(key));
    print("Secondary isolates disposed");
  }
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

-[__NSCFString setStreamHandler:]: unrecognized selector sent to instance 0x281207100 …
Run Code Online (Sandbox Code Playgroud)

dart-isolates flutter

5
推荐指数
0
解决办法
479
查看次数

检测到不一致。无效的视图支架适配器 positionViewHolder

我最近在一些设备上遇到了上面提到的崩溃,不知道是什么触发了它。

有些答案建议扩展 LayoutManager 并使异常静音,但我宁愿为此找到一个永久有效的解决方案,有些建议清除我正在执行但仍然崩溃的适配器中的列表。

这是 Adapter 类 -

class Adapter(private val adapterType: Int, private val clickListener: GalleryHolder.ClickListener) : SelectableAdapter<Adapter.GalleryHolder>() {
    val objectArrayList: ArrayList<String> = ArrayList()
    private var emptyView: View? = null

    companion object {
        const val IMAGE = 0
        const val VIDEO = 1
    }

    fun addAll(items: ArrayList<String>) {
        objectArrayList.addAll(items)
        notifyItemRangeInserted(0, objectArrayList.size)
    }

    fun clear() {
        val size = objectArrayList.size
        notifyItemRangeRemoved(0, size)
        objectArrayList.clear()
    }

    override fun getItemCount(): Int {
        return objectArrayList.size
    }

    fun setEmptyView(emptyView: View) {
        this.emptyView = emptyView
    } …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-recyclerview

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

如果文件存在,如何增加文件名

如果文件已存在,如何增加文件名?这是我正在使用的代码 -

int num = 0;

String save = at.getText().toString() + ".jpg";

File file = new File(myDir, save); 

if (file.exists()) {
    save = at.getText().toString() + num +".jpg";

    file = new File(myDir, save); 
    num++;
}
Run Code Online (Sandbox Code Playgroud)

此代码有效,但只保存了2个文件,如file.jpg和file2.jpg

java android

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

如何从资产或原始文件夹中查看pdf?

我正在使用MuPDF库在我的应用程序中显示pdf ..可以查看保存在内部或外部存储器中的PDF,但是如果应用程序存储在应用程序的资源文件夹中,则不显示pdf ...如何在应用PDF中查看?

我已经看过解决方案,说我们可以在应用程序相关文件夹中复制我们的应用程序PDF,然后在以后使用它们......但我无法得到它...

这是代码 -

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button showPDFBtn = (Button)findViewById(R.id.btn_show_pdf);
        showPDFBtn.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {

        Uri uri = Uri.parse("file:///android_asset/test.pdf");
        Intent intent = new Intent(MainActivity.this, MuPDFActivity.class);
        intent.setAction(Intent.ACTION_VIEW);
        intent.setData(uri);
        startActivity(intent);



}}
  );
  }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

android mupdf

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

应用程序崩溃与空对象引用

我正在使用一个片段,编译器不会抛出任何错误.但是当我按下我创建了一个监听器的指定按钮时,该应用程序崩溃了!logcat引用了null object reference这部分代码......

private ImageView i;
    private String key = null;
    private ArrayList<String> lst = new ArrayList();

    private OnClickListener lstn = new OnClickListener() {
        public void onClick(View v)
        {
            EditText et1 = (EditText) v.findViewById(R.id.editText1);

            profilname = et1.getText().toString();


            new getPbLink().execute(new String[]{profilname});

        }

    };


    private OnClickListener lstn1 = new OnClickListener() {
        public void onClick(View v) 
        {
            if (pb == null)
            {
                Toast.makeText(getActivity(),"nodp", 0)
                .show();
            } else 

            { 
                SaveImage(pb);
                Toast.makeText(getActivity(), "saved", 0)
                    .show();
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

该怎么办?logcat -

    Process: com.nav.drawer, PID: …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-fragments

0
推荐指数
1
解决办法
232
查看次数