小编ano*_*nim的帖子

如何基于GUID生成唯一的整数

是否有可能从GUID生成(极可能)唯一的整数?

int i = Guid.NewGuid().GetHashCode();

int j = BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0);
Run Code Online (Sandbox Code Playgroud)

哪一个更好?

c#

54
推荐指数
7
解决办法
8万
查看次数

如何将视图引用传递给android自定义视图?

我做了如下

1)创建一个风格

<declare-styleable name="Viewee">
    <attr name="linkedView" format="reference"/>
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)

2)定义自定义视图布局

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffc0">
    <TextView
            android:id="@+id/custom_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="[text]"
            />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

3)创建所需的类

public class Viewee extends LinearLayout
{
public Viewee(Context context, AttributeSet attributeSet)
{
    super(context, attributeSet);
    View.inflate(context, R.layout.viewee, this);
    TextView textView = (TextView) findViewById(R.id.custom_text);
    TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.Viewee);
    int id = typedArray.getResourceId(R.styleable.Viewee_linkedView, 0);
    if (id != 0)
    {
        View view = findViewById(id);
        textView.setText(((TextView) view).getText().toString());
    }

    typedArray.recycle();
}
}
Run Code Online (Sandbox Code Playgroud)

最后是在下面的活动中

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res/com.ns"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
    <TextView
            android:id="@+id/tvTest"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android custom-view

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

无法在升级到Android Lollipop的设备上使用adb安装apk

我最近将我的一个Android设备升级到Android Lollipop(5.0),现在我无法调试我的应用程序甚至在设备上使用adb安装apk.我收到以下错误

java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.St
ring, java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Lj
ava_lang_String_2Ljava_lang_String_2)
        at android.os.SystemProperties.native_get(Native Method)
        at android.os.SystemProperties.get(SystemProperties.java:64)
        at android.os.Environment.<clinit>(Environment.java:354)
        at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java:488)
        at android.os.Debug.<clinit>(Debug.java:96)
        at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java:164)
        at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:91)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
java.lang.UnsatisfiedLinkError: android.os.Debug
        at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java:176)
        at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:93)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
java.lang.UnsatisfiedLinkError: android.os.Debug
        at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java:187)
        at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java:88)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
Run Code Online (Sandbox Code Playgroud)

我的设备是华硕FonePad 7 ME175CG或K00Z

内核版本

20年3月10日,i386_cpt

安卓@ mec9#1

Mon Apr 20 13:30:08 CST 2015

这个问题有什么解决方案吗?

更新

首先感谢那些关注这个非常具体的问题的人,非常感谢

进一步澄清,

当我收到这个错误时,我用Google搜索了整个宇宙中的短语,java.lang.UnsatisfiedLinkError并尝试了任何似乎适用的解决方案,以及@Kushal和其他人提出的解决方案.大多数问题是(现在仍然是)HTC M8和华硕以外的设备.如果您访问此帖子,您可能会看到我的答案被SO警卫删除,我承认这不是一个真正的答案,我发布答案,而我真的对解决问题感到失望.

无论如何,我现在所做的可能对其他人有帮助的是, …

android adb android-5.0-lollipop

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

在C++和C#ByRef之间传递字节数组会引发AccessViolationException

我试图创建一个Win32 DLL暴露一些在C#中调用的函数,如下所示

__declspec(dllexport) int GetData(unsigned char* *data, int* size)
{
    try
    {
        int tlen = 3;
        unsigned char* tchr = new unsigned char[5];
        tchr[0] = 'a';
        tchr[1] = 'b';
        tchr[2] = 'c';

        *size = tlen;
        *data = tchr;

        return 1;
    }
    catch (char *p)
    {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

在C#方面

[DllImport("MyDll.dll")]
static extern int GetData(ref byte[] data, ref int size);

static void Main()
{
    try
    {
        int hr = 0;
        byte[] gData = null;
        int gSize = 0;
        hr = …
Run Code Online (Sandbox Code Playgroud)

c# c++ pinvoke dllimport

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

Android:单个活动,多个视图

我不是Android专家,虽然我开发了一个包含50多个活动的应用程序,这使得应用程序非常庞大.经过8周的开发,现在存在导致应用程序难以维护和升级的问题.我正在处理的主要是

  1. 我无法将对象引用传递给活动的构造函数.事实上,我发现了startActivityForResult- 的机制Intent- onActivityResult真正限制并导致每个活动的动作的许多常量的脏代码,并且很多switch case这很难跟随应用程序的流程.

  2. 另一个问题是我不知道如何管理整个应用程序的生命周期,因为每个活动都有自己的生命周期.

我有一些LWUITJ2ME的成功经验- 抛光忽略了J2ME MIDlets(类似于android活动)并实现了他们自己的架构和窗口系统,只有一个MIDlet作为应用程序的入口.我为android提出了同样的想法.

为了澄清,我正在考虑一个应用程序只有一个主要Activity和其他活动实现为扩展View对象的对象,这些视图可以动态添加到主活动FrameLayout和堆叠在一起.活动的逻辑可以在这些类中实现,我甚至找到了以这种方式实现对话框的方法.业务和状态对象可以传递给它们的构造函数,听起来很好,忽略了编写更多代码的副作用.这种方式也可以将侦听器传递给视图的构造函数,从而使应用程序UI切换和流程管理更加容易.

但问题是:

  • 这是一个好习惯吗?
  • 它不会导致我出现性能或内存问题吗?

我也知道

这些都没有明确地用合理的证据或文件参考来解决有关表现或实践的问题

请有人帮我这个

android design-patterns

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

Xcode注释取消注释问题

我是Xcode的新手,发现了令人沮丧的事情.我选择几行代码并将其注释掉.对于前

//      NSString* u = __txtUsername.text;
//      NSString* p = __txtPassword.text; 
Run Code Online (Sandbox Code Playgroud)

然后我可以重新缩进代码,注释代码如下所示

        //      NSString* u = __txtUsername.text;
        //      NSString* p = __txtPassword.text;
Run Code Online (Sandbox Code Playgroud)

现在,如果我试图取消注释注释代码Xcode产生如下所示

//     //      NSString* u = __txtUsername.text;
//     //      NSString* p = __txtPassword.text;
Run Code Online (Sandbox Code Playgroud)

事实上,而不是删除////在开始时添加更多,并//从注释的重新缩进代码中删除是非常令人沮丧的.

有没有解决方案,或者我做了一些荒谬的事情?

xcode ios

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

适用于Android和iOS的Rapid App Prototyping工具

Expression Blend + SketchFlow为Windows Phone快速应用程序原型设计提供了一个模板,当人们在早期阶段与客户共享应用程序设计和模型功能时非常有用.该模板提供了非常相似的UI元素,如pivot和全景控件,就像SDK提供的实际控件一样.

我想知道是否存在Android和iOS平台模板,它们模仿每个平台中的确切UI元素.有谁知道我在哪里找到?

android expression-blend rapid-prototyping ios

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

ECDH从OpenSSL和BouncyCastle派生的共享密钥并不总是相同,尽管两者的常量和域参数相同

我正在尝试在iOS应用程序和java servlet之间实现AES加密.Java servlet使用BouncyCastle库,而iOS应用程序使用OpenSSL.虽然我已经为双方使用了相同的公钥/私钥对和域参数,但OpenSSL生成的共享密钥有时与服务器端BouncyCastle生成的密钥不同.

程序如下;

  1. 在服务器与指定的域参数生成的公开/私有密钥对(比方说server_public_key,server_private_key)
  2. server_public_keyEC_POINTX和Y的形式嵌入iOS应用程序中
  3. 在运行时iOS应用程序生成自己的公钥/私钥对(比如说 client_key_curve是一个EC_KEY),和
  4. 然后根据server_public_key和client_key_curve 加载server_public_key并计算共享的secret(key_agreement)
  5. 然后client_public_key(从中提取client_key_curve)以及使用派生的共享秘密(key_agreement)对称加密的加密消息被发送到服务器
  6. 在服务器端,再次使用client_public_key和服务器ECDH参数计算共享密钥 ,这些参数与客户端相同,并且
  7. 然后使用计算机解密加密的消息 key_agreement

但解密的消息并不总是与客户端发送的消息相同.

由于我还开发了一个使用相同程序但使用BouncyCastle进行加密的Android应用程序,因此我怀疑使用OpenSSL实现代码的正确性,因此这里显示的代码可供其他人帮助解决问题.我用来计算共享密钥的方法如下

- (void)calculateSharedSecret
{
    BN_CTX* bn_ctx;

    EC_KEY*     client_key_curve = NULL;
    EC_KEY*     server_key_curve = NULL;
    EC_GROUP*   client_key_group = NULL;
    EC_GROUP*   server_key_group = NULL;
    EC_POINT*   client_publicKey = NULL;
    EC_POINT*   server_publicKey = NULL;
    BIGNUM*     client_privatKey = NULL;

    BIGNUM* client_publicK_x = NULL;
    BIGNUM* client_publicK_y = NULL; …
Run Code Online (Sandbox Code Playgroud)

openssl bouncycastle elliptic-curve ios

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

OpenSSL RSA_public_encrypt奇怪的行为

我正在尝试使用OpenSSL在C中编写一个简单的加密例程,我发现了一些奇怪的东西.我不是C大师,也不是OpenSSL专业人士.所以我可能犯了一个错误.

功能如下

char *rsa_encrypt(char *data)
{
    const char xponent_in_hex[] = "010001";
    const char modulus_in_hex[] = "D0BA16F11907E7B0819705A15264AC29BEE9F1EC5F22642992
    D3E27100B7F212864A624A12FFB6D531712B0B0225AAD0C2E313D077A7DB2A5A33483EEFF41A9D";    

    BIGNUM *xponent = NULL;
    BIGNUM *modulus = NULL;

    BN_hex2bn(&xponent, xponent_in_hex);
    BN_hex2bn(&modulus, modulus_in_hex);

    RSA *rsa = RSA_new();
    rsa->e = xponent;
    rsa->n = modulus;
    rsa->iqmp = NULL;
    rsa->d = NULL;
    rsa->p = NULL;
    rsa->q = NULL;

    char encoded[512] = { 0 };
    RSA_public_encrypt(
    strlen(data), 
    (const unsigned char *)data, 
    (unsigned char *)encoded,
    rsa, 
    RSA_PKCS1_OAEP_PADDING
);

    RSA_free(rsa);

    return (encoded);
}

int _tmain(int argc, _TCHAR* argv[])
{
    printf("%s\n", …
Run Code Online (Sandbox Code Playgroud)

openssl ios

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