小编Mil*_*uri的帖子

Android:常量内存消耗/ dumpGfxInfo()

给定:使用Android Studio向导创建的简单活动,内部没有任何自定义代码,永久消耗内存调用dumpGfxInfo().

Android Studio在Allocation Tracker中的构建显示至少有三个线程做同样的事情:

 --- 8< ------------------------------------------------------------------

 * < Thread 12 > 
   * execTransact():446, Binder (andoroid.os)   
     * onTransact():545, ApplicationThreadNative (android.app)
       * dumpGfxInfo():1107, ActivityThread$ApplicationThread (android.app)

 --- 8< -------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

显然dumpGfxInfo()通过为空字符串分配内存来消耗内存.编译的唯一相关依赖项是com.android.support:appcompat-v7:22.2.1

随着这种内存消耗,出现以下异常(有时):

15331-15364/ W/Binder? Caught a RuntimeException from the binder stub implementation.
    java.lang.NullPointerException: Attempt to read from field 'android.view.HardwareRenderer android.view.View$AttachInfo.mHardwareRenderer' on a null object reference
            at android.view.WindowManagerGlobal.dumpGfxInfo(WindowManagerGlobal.java:466)
            at android.app.ActivityThread$ApplicationThread.dumpGfxInfo(ActivityThread.java:1107)
            at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:548)
            at android.os.Binder.execTransact(Binder.java:446)
Run Code Online (Sandbox Code Playgroud)

问题:如何修复/关闭此行为并摆脱它?

java memory android android-studio

26
推荐指数
2
解决办法
5695
查看次数

使用Android Studio在gradle中使用系统环境变量的正确方法

我正在使用Android Studio在Ubuntu 14.04系统上构建我的项目.

我在build.gradle文件中写了以下内容,以避免在我的git仓库中硬编码storeFile,storePassword,keyAlias和keyPassword:

signingConfigs {
 debug {

    storeFile file(System.getenv("KEYSTORE"))
    storePassword System.getenv("KEYSTORE_PASSWORD")
    keyAlias System.getenv("KEY_ALIAS")
    keyPassword System.getenv("KEY_PASSWORD")        
 }
Run Code Online (Sandbox Code Playgroud)

但是使用以下内容来清除同步错误: Error:(49, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='./pathto/TMessagesProj'

我的.bashrc包含:source ~/.gradlerc而我的〜/ .gradlerc包含以下内容:

export KEYSTORE="/home/myname/keystore/mykey"
export KEYSTORE_PASSWORD='mypass'
export KEY_ALIAS='mykey'
export KEY_PASSWORD='keypass'
Run Code Online (Sandbox Code Playgroud)

我已经确认这些变量是由shell正确导入的.但是我不确定它为什么没有被Android Studio中的构建环境接收.

在gradle中使用环境变量的正确方法是什么?

android gradle android-studio android-gradle-plugin

25
推荐指数
2
解决办法
2万
查看次数

如何在NDK本机代码中获取断点并在Android Studio中调试本机代码?

我正在使用NDK开发Android应用程序.我有两个项目.一个是我的本机库,它使用NDK并生成.so文件.

我正在使用Android Studio,但是使用ndk-build禁用自动构建和启用构建.我使用的是Windows 7.

现在生成.so文件后,我复制了我的主应用程序项目中的那些,它也使用ndk-build编译JNI函数,我在其中调用我的库的函数.我希望到目前为止我很干净.如果没有,那么我会根据要求提供更多细节.

现在我正在使用Android Studio在设备中运行我的应用程序,我可以在java代码中设置断点并调试该代码,但我无法调试JNI调用以及我在单独项目中的本机代码.我需要在我的库代码中调试.有没有办法实现这个目标?

我见过VisualGDB,但付费.所以让我知道是否有任何替代方案来满足我的调试要求.我已经搜索了很多但没有得到任何具体的解决方案.

我可以看到Android Studio中的选项附加到android进程,我可以看到我的运行设备,但我不知道如何使用它,所以我可以通过本机库代码进行调试(这是在没有任何活动的单独项目中).

如果需要更多详细信息,请与我们联系

android android-ndk android-studio

22
推荐指数
2
解决办法
2万
查看次数

Android - 独特且持续的设备ID

我需要在服务器上注册用户设备,其唯一标识符是一个常量值,并且将来不会更改.

我找不到一个很好的解决方案来获取所有设备的唯一ID(有/没有simcard).

Secure.ANDROID_ID:Secure.ANDROID_ID不是唯一的,可以为null或在出厂重置时更改.

String m_androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)

IMEI:IMEI依赖于设备的Simcard插槽,因此无法为不使用Simcard的设备获取IMEI.

TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String uuid = tManager.getDeviceId();
Run Code Online (Sandbox Code Playgroud)

WLAN MAC地址:如果设备没有wifi硬件,则返回空MAC地址.用户可以更改设备的mac地址.

WifiManager m_wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
String m_wlanMacAdd = m_wm.getConnectionInfo().getMacAddress();
Run Code Online (Sandbox Code Playgroud)

蓝牙地址字符串:如果设备没有蓝牙硬件,则返回null.

BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
String m_bluetoothAdd = m_BluetoothAdapter.getAddress();
Run Code Online (Sandbox Code Playgroud)

实例ID:当用户卸载并重新安装应用程序时,instance_id将会更改.而且它不是一个恒定的价值.

您是否有任何想法从所有Android设备(有/没有SIM卡,蓝牙......)获得一个唯一的ID,它真的是唯一的,不能为空并且在卸载/重新安装应用后不会改变?

android

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

从字符串中获取哈希值,例如哈希值

使用包哈希,我可以从数字中获取哈希(并编码y解码)

var Hashids = require("hashids"),
    hashids = new Hashids("this is my salt", 8);

var id = hashids.encode(1);
Run Code Online (Sandbox Code Playgroud)

存在一些类似的包来从字符串获取哈希?(带编码/解码)

hash node.js hashids

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

字符串的快速哈希

我有一组ASCII字符串,假设它们是文件路径。它们既可以很短也可以很长。

我正在寻找一种可以计算此类字符串的哈希的算法,该哈希也将是字符串,但具有固定的长度,例如youtube video id:

https://www.youtube.com/watch?v=-F-3E8pyjFo
                                ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

MD5似乎是我所需要的,但是对我来说,拥有短的哈希字符串至关重要。

是否有可以执行此操作的shell命令或python库?

python algorithm bash hash hashids

5
推荐指数
2
解决办法
8260
查看次数