小编Gaj*_*lur的帖子

如何在最新的Android Studio 3.1中打开Android设备监视器

最近我更新了我的android工作室,更新后,我无法在工具部分找到android设备监视器选项.在之前的更新中,它位于tools-> android-> android device monitor中.但现在在更新版本中,它不存在.你可以查看我的android studio的截图.

在此输入图像描述

android android-studio

68
推荐指数
6
解决办法
9万
查看次数

kotlin 内部类的目的是什么?

我是科特林的新手。我正在 kotlin 中浏览嵌套类和内部类概念。下面是一个嵌套类的例子。

 fun main(args: Array<String>) {
   val demo = Outer.Nested().foo() // calling nested class method
   print(demo)
}
class Outer {
   class Nested {
      fun foo() = "Hello world"
   }
}
Run Code Online (Sandbox Code Playgroud)

这给出了输出

Hello world
Run Code Online (Sandbox Code Playgroud)

这是内部类的例子

fun main(args: Array<String>) {
   val demo = Outer().Nested().foo() // calling inner class method
   print(demo)
}
class Outer {
   private val welcomeMessage: String = "Hello world"
   inner class Nested {
      fun foo() = welcomeMessage
   }
}
Run Code Online (Sandbox Code Playgroud)

这给出了输出

Hello world
Run Code Online (Sandbox Code Playgroud)

我的问题是嵌套类何时可以执行与内部类相同的操作。内部类的目的是什么?为什么我们需要实时内部类?

java kotlin

7
推荐指数
2
解决办法
2552
查看次数

如何在 sqlite DB 浏览器中查看 Room 数据库的表?

我在我的示例应用程序中使用 RoomDB。我能够对 DB 执行 CRUD 操作。但我无法查看 db 文件。我想在 sqlite DB 浏览器中查看表结构。

这是我的APPDatabase

 @Database(entities = {User.class}, version = 1,exportSchema = false)

public abstract class AppDatabase extends RoomDatabase {

    private static AppDatabase INSTANCE;  
    public abstract UserDao userDao();        
    public static AppDatabase getAppDatabase(Context context) {
        if (INSTANCE == null) {
            INSTANCE =
                    Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "user-database")                                
                            .allowMainThreadQueries()
                            .build();
        }
        return INSTANCE;
    }    
    public static void destroyInstance() {
        INSTANCE = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

帮我获取数据库文件。

android android-room

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

如何更改 Room DataBase 的默认数据库文件位置?

我在我的应用程序中使用 RoomDB。能够执行 crud 操作。其实我想看看db文件。

getDatabasePath("user.db").getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我db文件所在的目录,保存目录是这样的

 /data/data/com.example.manvish.roomdb/databases/user.db
Run Code Online (Sandbox Code Playgroud)

但即使在命令提示符下使用 sudo ,我仍然无法访问数据目录。现在我想将 DB 文件位置更改为内部存储器或 SD 卡中的其他一些文件夹。我怎样才能做到这一点?

android android-sqlite android-room

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

推出应用程序时白屏的原因是什么?如何完全避免它?

我有一个简单的应用程序,我使用openssl进行一些加密.但我在应用程序启动时获得白屏超过5秒.

这是我的傻瓜:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            keyAlias 'manvish'
            keyPassword 'manvish'
            storeFile file('/home/manvish/Android/debug.keystore')
            storePassword 'manvish'
        }
    }

        compileSdkVersion 25
        buildToolsVersion '26.0.2'
        defaultConfig {
            applicationId "com.example.manvish.bwssb"
            minSdkVersion 19
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            vectorDrawables.useSupportLibrary = true

        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        }



    android {
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/dependencies.txt'
            exclude 'META-INF/LGPL2.1'
        }


    }

    android …
Run Code Online (Sandbox Code Playgroud)

android android-design-library

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

在翻新中区分writeTimeout,readTimeout和connectTimeout吗?

我想将一些json字符串发布到某些URL。我得到异常作为

 Exception: java.net.SocketTimeoutException: failed to connect to 
Run Code Online (Sandbox Code Playgroud)

有关此问题的大量搜索结果,人们建议在改造中增加和减少超时参数。我想知道writeTimeout,readTimeout和connectTimeout之间的区别。这样我就可以触发SocketTimeoutException。这是我的复古客户。

    public static Retrofit getClient() {

        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder().writeTimeout(20, TimeUnit.SECONDS).
//.authenticator(new Authen()).

        readTimeout(30, TimeUnit.SECONDS).
                        connectTimeout(20, TimeUnit.SECONDS).
                        addInterceptor(interceptor).build();

        return new Retrofit.Builder()
                .baseUrl(DefinesClass.ITS_URL)
//                .baseUrl("https://reqres.in")
//                .addConverterFactory(GsonConverterFactory.create())
                .addConverterFactory(SimpleXmlConverterFactory.create())
                .client(client)
                .build();


    }
Run Code Online (Sandbox Code Playgroud)

有什么办法可以对异常帮助人员进行排序?

android retrofit retrofit2

3
推荐指数
2
解决办法
2654
查看次数

在android中使用StrictMode是否可以避免ANR?

我在某处读到,通过使用 StrictMode 我们可以避免 android 中的 ANR。我尝试过,下面是代码

public class MyApplication extends Application {

@Override
public void onCreate() {


        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectAll()
                .penaltyLog()
                .penaltyFlashScreen()
                .penaltyDeath()
                .detectDiskReads()
                .detectDiskWrites()
                .detectNetwork()
                .build());

    super.onCreate();
}
Run Code Online (Sandbox Code Playgroud)

我尝试生成 ANR 以用于测试目的,如下所示:

 @Override
public boolean onTouchEvent(MotionEvent event) {
    Log.d("kishan","onTouchEvent");
    while(true) {}
}
Run Code Online (Sandbox Code Playgroud)

但屏幕上仍然出现了 ANR。如何使用StrictMode避免ANR?是否可以?

android android-anr-dialog android-strictmode

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