小编Ent*_*ain的帖子

Android Studio - 在现有的旧项目中启用本机C++调试(card.io Android Source)

我目前正在尝试了解card.io Android Source的本机实现是如何工作的.为此,有可能调试本机C++代码.目前我的断点不受尊重.

我确实尝试了以下方法:

  1. 调整Application make文件(Application.mk):

C++

  1. 将buildType添加到SampleApp的build.gradle文件中

APP_ABI := armeabi-v7a APP_CFLAGS += -UNDEBUG -O0 -g -ggdb APP_OPTIM := debug APP_CPPFLAGS += -DDMZ_DEBUG=1

注意: 我使用的是带有Ubuntu 16.04(64位)的Android Studio 3.1,如果我创建一个支持C++的新项目,调试就完全正常了.

我们正在调试Android 7.0设备; 该项目正在使用NDK构建系统.

c++ java android android-ndk android-studio

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

如何通过蓝牙(LE)将图像传输到桌面应用程序

我们目前正在尝试实现将图像从移动设备(在本例中为iPhone)传输到桌面应用程序的过程。我们已经尝试了蓝牙串行插件,该插件可在Android上正常运行,但在扫描桌面应用程序时未列出任何设备。

为了涵盖iOS支持(AFAIK iOS仅支持BluetoothLE),我们重新实现了桌面应用程序以使用BluetoothLE并表现为外围设备。另外,我们更改了Ionic应用程序以使用BLE插件

现在,BluetoothLE仅支持传输大小为20 Byte的包,而我们的映像大约为500kb。因此,我们显然可以将图像拆分为多个块,并使用以下函数进行传输(取自该要点):

function writeLargeData(buffer) {
    console.log('writeLargeData', buffer.byteLength, 'bytes in',MAX_DATA_SEND_SIZE, 'byte chunks.');
    var chunkCount = Math.ceil(buffer.byteLength / MAX_DATA_SEND_SIZE);
    var chunkTotal = chunkCount;
    var index = 0;
    var startTime = new Date();

    var transferComplete = function () {
        console.log("Transfer Complete");
    }

    var sendChunk = function () {
        if (!chunkCount) {
            transferComplete();
            return; // so we don't send an empty buffer
        }

        console.log('Sending data chunk', chunkCount + '.');

        var chunk = buffer.slice(index, …
Run Code Online (Sandbox Code Playgroud)

android bluetooth ios bluetooth-lowenergy ionic-framework

8
推荐指数
2
解决办法
311
查看次数

Magento 1.9.2 - 保存自定义管理表单产品新建和编辑页面(自定义选项卡)

我实现了向产品new&edit页面添加自定义选项卡/网格,其中包含输入字段.遵循本教程

问题是它没有保存数据输入.在这一点上,我不知道这是否实际上没有在教程中涵盖,或者我犯了一个错误.

这足以保存数据输入吗?

$customFieldValue =  $this->_getRequest()->getPost('custom_field');

$product->save();
Run Code Online (Sandbox Code Playgroud)

我怎么能在后端调试这个值?

php forms admin backend magento

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

加载组件后滚动到 Material Accordion 中的特定扩展面板

我们正试图滚动到一个特定<mat-expansion-panel>内的项目<mat-accordion>。问题是ngAfterViewInit()在手风琴及其面板完全加载之前触发。这意味着在scrollIntoView()加载手风琴时调用该函数,然后页面大小发生变化,使我们的滚动操作将我们带到错误的页面位置。

我们还尝试了其他生命周期钩子,但没有帮助,因为它们都被提前调用了。有人对这个问题有什么好的做法吗?

我们的源代码很简单,因为我们正在尝试实现一些非常基本的东西:

登陆页面.component.html

<mat-accordion>
   <mat-expansion-panel id="pangel-1">
    <mat-expansion-panel-header>
      <mat-panel-title>Lorem ipsum</mat-panel-title>
    </mat-expansion-panel-header>
    <p>
      Lorem ipsum dolor sit amet,
      consetetur sadipscing elitr,
      sed diam nonumy eirmod tempor invidunt...
    </p>
  </mat-expansion-panel>
  <mat-expansion-panel id="panel-2">
    <mat-expansion-panel-header>
      <mat-panel-title>Lorem ipsum</mat-panel-title>
    </mat-expansion-panel-header>
    <p>
      Lorem ipsum dolor sit amet,
      consetetur sadipscing elitr,
      sed diam nonumy eirmod tempor invidunt...
    </p>
  </mat-expansion-panel> 

  [ ... ] // more panels

</mat-accordion>
Run Code Online (Sandbox Code Playgroud)

登陆页面.component.ts

ngAfterViewInit() {
  this.scroll("panel-1");
}

scroll(id) {
  console.log(`scrolling to ${id}`);
  let el = document.getElementById(id); …
Run Code Online (Sandbox Code Playgroud)

typescript angular-material angular

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

在创建程序布局时,预览在Camera2 API中拉伸

在我们的应用程序更新后,我们现在使用Camera2 API,遗憾的是预览在我们的测试设备上拉伸:Samsung SM-J330F/DS,Android-Version 8.0.0,API 26

因为我们在同一设备上没有遇到Googles Camera2Basic项目的这个问题,所以我们尝试调整我们的项目以使用相同的预览实现.目前我们无法弄清楚两个项目之间不同预览的确切原因.

我们的预览体验了预览.

这是预期的:

在同一设备上正确预览Camera2Basic项目

与Camera2Basic项目相比,我们RelativeLayout在Activity类中以编程方式创建,AutoFitTextureView然后将其添加到此对象:

mMainLayout = new FrameLayout(this);
mMainLayout.setBackgroundColor(Color.BLACK);
mMainLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
        LayoutParams.MATCH_PARENT));

mPreview = new AutoFitTextureView(this);
mPreview.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
        LayoutParams.MATCH_PARENT, Gravity.TOP));

mMainLayout.addView(mPreview);
this.setContentView(mMainLayout);
Run Code Online (Sandbox Code Playgroud)

实现AutoFitTextureView与Camera2Basic项目相同.

稍后在将预览设置setUpCameraOutputs()为640x480像素(所有设备应支持的分辨率)之后的Camera2类中,我们调用setAspectRatio(width, height)mPreview:

mPreviewSize = new Size(640, 480);

if (mFrameOrientation == Configuration.ORIENTATION_LANDSCAPE) {
    mTextureView.setAspectRatio(
        mPreviewSize.getWidth(), mPreviewSize.getHeight()
    );
} else {
    mTextureView.setAspectRatio(
        mPreviewSize.getHeight(), mPreviewSize.getWidth()
    );
}
Run Code Online (Sandbox Code Playgroud)

注意:同样在较新的设备上(如荣誉10),预览看起来很好.

java android android-camera android-camera2

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

npm 和 gulp - 如何在 gulp 中正确处理使用 npm 安装的模块

我目前正在设置我的前端环境,无法弄清楚如何组合节点模块以正确使用 gulp。最初我想使用 bower,但是因为 bower 博客上什至推荐使用 yarn 我改变了主意。并且因为我的项目中已经使用了 nodejs,所以我来到了这个问题。

例如,如果我现在想安装 Bootstrap 4,我的代码段可能如下所示:

var gulp        = require('gulp');
var browserSync = require('browser-sync').create();
var sass        = require('gulp-sass');

// Compile sass into CSS & auto-inject into browsers
gulp.task('sass', function() {
    return gulp.src(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'])
        .pipe(sass())
        .pipe(gulp.dest("src/css"))
        .pipe(browserSync.stream());
});

// Move the javascript files into our /src/js folder
gulp.task('js', function() {
    return gulp.src(['node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/tether/dist/js/tether.min.js'])
        .pipe(gulp.dest("src/js"))
        .pipe(browserSync.stream());
});
Run Code Online (Sandbox Code Playgroud)

我对这个片段的问题是,我必须检查我安装的每个模块所需文件的路径,并在多个地方更改 gulpfile。所以我的问题是,对于这个问题是否有更好/更简单的工作流程。

frontend node.js npm gulp

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

camera2 捕获的图片 - 从 YUV_420_888 到 NV21 的转换

通过 camera2 API,我们接收到格式为YUV_420_888的 Image 对象。然后我们使用以下函数转换为NV21

private static byte[] YUV_420_888toNV21(Image image) {
    byte[] nv21;
    ByteBuffer yBuffer = image.getPlanes()[0].getBuffer();
    ByteBuffer uBuffer = image.getPlanes()[1].getBuffer();
    ByteBuffer vBuffer = image.getPlanes()[2].getBuffer();

    int ySize = yBuffer.remaining();
    int uSize = uBuffer.remaining();
    int vSize = vBuffer.remaining();

    nv21 = new byte[ySize + uSize + vSize];

    //U and V are swapped
    yBuffer.get(nv21, 0, ySize);
    vBuffer.get(nv21, ySize, vSize);
    uBuffer.get(nv21, ySize + vSize, uSize);

    return nv21;
}
Run Code Online (Sandbox Code Playgroud)

虽然此函数与 配合良好cameraCaptureSessions.setRepeatingRequest,但在调用 时,我们会在进一步处理(在 JNI 端)中遇到分段错误cameraCaptureSessions.capture。两者都通过 ImageReader 请求 YUV_420_888 …

android yuv android-camera2

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