Android 瓷砖磨损不清楚调试预览
Android Tiles for wear unclear debug preview
我开始更新我们的磨损模块,使其与 Google Play 的最新指南保持同步。
因为我这样做了,所以我决定将 Tiles API 添加到应用程序中。当准备好发布 public 时,它将已经实施。
文档:https://developer.android.com/training/articles/wear-tiles#preview
很不清楚...有人明白吗?
wear-tiles-renderer 库提供了一种在您的应用程序中预览 activity 中的 Tiles 的方法。
要预览您的 Tile,请创建一个 activity,它使用渲染器库来渲染 Tile。在 src/debug 中添加此 activity 而不是 src/main,因为您将仅将此 activity 用于调试目的。有关示例,请参见以下代码示例:
我尝试手动将示例代码添加到调试文件夹,因为我无法从 Android Studio 添加它。
在主文件中添加了 xml 文件,并在调试文件夹中添加了文件以进行测试。
当我加载应用程序时,它会打开文件夹 src/main 的主文件,但会冻结。
如果处于调试状态,是否需要添加任何代码来加载示例?
文档中的引述试图解释的是,您需要一个看起来像这样的模块:
您的实际图块及其所需的一切都在主文件夹中。然后在调试文件夹中你需要以下三样东西:
清单 - 相当标准
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tiles">
<uses-feature android:name="android.hardware.type.watch" />
<application
android:label="@string/tiles_app_name">
<activity
android:name=".MainActivity"
android:label="@string/tiles_app_name"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Activity - 这里重要的是 TileManager
class MainActivity : ComponentActivity() {
private lateinit var tileManager: TileManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.tile_test)
val rootLayout = findViewById<FrameLayout>(R.id.tile_container)
tileManager = TileManager(
context = this,
component = ComponentName(this, SampleTile::class.java),
parentView = rootLayout
)
tileManager.create()
}
override fun onDestroy() {
super.onDestroy()
tileManager.close()
}
}
布局 - 也很标准
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tile_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
如果您已完成所有这些设置但它仍然冻结,则您的 Tile 中可能存在错误 class。查看 Logcat 中是否有任何错误消息可以帮助您了解问题所在。
在 Android Studio Dolphin 中,您现在可以在没有预览的情况下创建 Launch 配置
我开始更新我们的磨损模块,使其与 Google Play 的最新指南保持同步。 因为我这样做了,所以我决定将 Tiles API 添加到应用程序中。当准备好发布 public 时,它将已经实施。 文档:https://developer.android.com/training/articles/wear-tiles#preview
很不清楚...有人明白吗?
wear-tiles-renderer 库提供了一种在您的应用程序中预览 activity 中的 Tiles 的方法。 要预览您的 Tile,请创建一个 activity,它使用渲染器库来渲染 Tile。在 src/debug 中添加此 activity 而不是 src/main,因为您将仅将此 activity 用于调试目的。有关示例,请参见以下代码示例:
我尝试手动将示例代码添加到调试文件夹,因为我无法从 Android Studio 添加它。
在主文件中添加了 xml 文件,并在调试文件夹中添加了文件以进行测试。
当我加载应用程序时,它会打开文件夹 src/main 的主文件,但会冻结。
如果处于调试状态,是否需要添加任何代码来加载示例?
文档中的引述试图解释的是,您需要一个看起来像这样的模块:
您的实际图块及其所需的一切都在主文件夹中。然后在调试文件夹中你需要以下三样东西:
清单 - 相当标准
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tiles">
<uses-feature android:name="android.hardware.type.watch" />
<application
android:label="@string/tiles_app_name">
<activity
android:name=".MainActivity"
android:label="@string/tiles_app_name"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Activity - 这里重要的是 TileManager
class MainActivity : ComponentActivity() {
private lateinit var tileManager: TileManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.tile_test)
val rootLayout = findViewById<FrameLayout>(R.id.tile_container)
tileManager = TileManager(
context = this,
component = ComponentName(this, SampleTile::class.java),
parentView = rootLayout
)
tileManager.create()
}
override fun onDestroy() {
super.onDestroy()
tileManager.close()
}
}
布局 - 也很标准
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tile_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
如果您已完成所有这些设置但它仍然冻结,则您的 Tile 中可能存在错误 class。查看 Logcat 中是否有任何错误消息可以帮助您了解问题所在。
在 Android Studio Dolphin 中,您现在可以在没有预览的情况下创建 Launch 配置