小编sna*_*msm的帖子

Android ABI 拆分迁移到 App Bundle

我计划从 ABI 拆分迁移到 App Bundle 功能。目前我正在使用此代码:

def versionCodesAbi = ['x86': 1, 'x86_64': 2, 'armeabi-v7a': 3, 'arm64-v8a': 4]

    splits {
        abi {
            enable true
            reset()
            include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
            // "armeabi", "mips", "mips64" last three not needed and not supported currently
            universalApk true
        }
    }

    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def abi = versionCodesAbi.get(output.getFilter(OutputFile.ABI))
            if (abi != null) {
                output.versionCodeOverride =
                        abi * 1000 + variant.versionCode
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

每个 ABI 提供 4 个 APK(+ 通用一个)。使用此代码的原因是为了减少应用程序的大小,因为PanoWidget …

android abi renderscript android-app-bundle

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

RTP 的 AMR 解码

我正在接收一些 RTP 流,我只知道每个数据包的 AMR-WB 八位字节对齐 100 毫秒。某些第 3 方可以接收相同的流及其“可听”,因此这是正确的。现在我正在接收这些数据并尝试解码,但没有运气......

在里面:

val sampleRate = 16000
val mc = MediaCodec.createDecoderByType(MediaFormat.MIMETYPE_AUDIO_AMR_WB)
val mf = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AMR_WB, sampleRate, 1)
mf.setInteger(MediaFormat.KEY_SAMPLE_RATE, sampleRate) // is it needed?
mc.configure(mf, null, null, 0)
mc.start()
Run Code Online (Sandbox Code Playgroud)

分别解码每个数据包:

private fun decode(decoder: MediaCodec, mediaFormat: MediaFormat, rtpPacket: RtpPacket): ByteArray {
    var outputBuffer: ByteBuffer
    var outputBufferIndex: Int

    val inputBuffers: Array<ByteBuffer> = decoder.inputBuffers
    var outputBuffers: Array<ByteBuffer> = decoder.outputBuffers

    // input
    val inputBufferIndex = decoder.dequeueInputBuffer(-1L)
    if (inputBufferIndex >= 0) {
        val inputBuffer = inputBuffers[inputBufferIndex]
        inputBuffer.clear()
        inputBuffer.put(rtpPacket.payload)
        // …
Run Code Online (Sandbox Code Playgroud)

android android-mediacodec

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

意外的意图与行动WEB_SEARCH

我有很大的应用程序来检查很多活动.最受欢迎的例外之一是

找不到活动来处理Intent {act = android.intent.action.WEB_SEARCH(有额外内容)}

有没有搞错?我没有在代码中看到任何"WEB_SEARCH",我无法重现它,我甚至不知道在哪里寻找原因(其中Activity).下面的堆栈Exception,没有我的包中的任何类...如何跟踪和修复此问题?

Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.WEB_SEARCH (has extras) }
   at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1659)
   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1434)
   at android.app.Activity.startActivityForResult(Activity.java:3432)
   at android.app.Activity.startActivityForResult(Activity.java:3393)
   at android.support.v4.app.FragmentActivity.startActivityForResult(Unknown Source)
   at android.app.Activity.startActivity(Activity.java:3628)
   at android.app.Activity.startActivity(Activity.java:3596)
   at android.webkit.SelectActionModeCallbackSec.onActionItemClicked(SelectActionModeCallbackSec.java:390)
   at com.android.internal.policy.impl.PhoneWindow$DecorView$ActionModeCallbackWrapper.onActionItemClicked(PhoneWindow.java:3264)
   at android.support.v7.view.SupportActionModeWrapper$CallbackWrapper.onActionItemClicked(Unknown Source)
   at android.support.v7.app.AppCompatDelegateImplV7$ActionModeCallbackWrapperV7.onActionItemClicked(Unknown Source)
   at android.support.v7.app.AppCompatDelegateImplV7$ActionModeCallbackWrapperV7.onActionItemClicked(Unknown Source)
   at android.support.v7.view.StandaloneActionMode.onMenuItemSelected(Unknown Source)
   at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(Unknown Source)
   at android.support.v7.view.menu.MenuItemImpl.invoke(Unknown Source)
   at android.support.v7.view.menu.MenuBuilder.performItemAction(Unknown Source)
   at android.support.v7.view.menu.MenuBuilder.performItemAction(Unknown Source)
   at android.support.v7.view.menu.MenuPopupHelper.onItemClick(Unknown Source)
   at android.widget.AdapterView.performItemClick(AdapterView.java:301)
   at android.widget.AbsListView.performItemClick(AbsListView.java:1490)
   at android.widget.AbsListView$PerformClick.run(AbsListView.java:3275)
   at android.widget.AbsListView$1.run(AbsListView.java:4518)
   at android.os.Handler.handleCallback(Handler.java:725) …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-search

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

NestedWebView 与 ScrollingViewBehavior 一起正常工作

我有两个活动,一个应用程序扩展相同的abstract-一个与WebView另一个具有ViewPagerTabLayoutRecyclerView的S -和在这个层面上,我实现“共享”显示/隐藏工具栏与滚动/一扔功能:

app:layout_scrollFlags="scroll|snap|enterAlways"

WebViewToolbar就像RecyclerViewViewPager(保持TabLayout可见)中的任何选项卡下一样“推出” ,在这两种情况下,任何滚动到顶部都会带回Toolbar. 就像在这个例子中一样:

用滚动隐藏

现在我必须改变这种行为 -Toolbar当用户不在页面顶部时应该隐藏,所以:Toolbar如果存在任何滚动到底部应该隐藏并且只有(滚动到顶部 && getScrollY()<=0)应该Toolbar输入:

只隐藏在顶部

我从指南中借用了 GIF ,这表明(所有其他的)我想要的行为是默认的,只有scroll标志(可能还有snap)。所以我已经删除了enterAlways,我的“本机”Activity开始按预期开箱即用。WebView- 根本没有变化......

我怀疑这个错误是我造成的NestedWebView,我目前使用的一个。所以我试图用这些来替换这个类:

marshi - 不可滚动的 webview 内容(工具栏显示/隐藏)

takahirom - 即使在 1px 几乎立即向上滚动时,工具栏也会进入(一种捕捉行为,但在触摸期间)

hanks - 没有嵌套滚动(固定工具栏),还有未注释的setNestedScrollingEnabled(true);

如何实现Toolbar与GIF合作的第二个 GIF行为WebView

android android-webview android-scroll android-toolbar android-appbarlayout

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