You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/includes/best-practices-native.md
+22-16Lines changed: 22 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ Here are the minimum OS platform requirements to ensure optimal functionality of
31
31
- Support for Java 7 or later
32
32
- Support for Android Studio 2.0
33
33
34
-
We highly recommend that you identify and validate your scenario by visiting the supported [Android platforms](../sdk-options.md?#android-platform-support).
34
+
We highly recommend that you identify and validate your scenario by using the information in [Android platform support](../sdk-options.md?#android-platform-support).
35
35
36
36
#### [Windows](#tab/windows)
37
37
@@ -76,42 +76,48 @@ Go to `Package.appxmanifest` and select capabilities:
76
76
77
77
### Configure the logs
78
78
79
-
Implementing **logging** as per the [logs file retrieval tutorial](../../tutorials/log-file-retrieval-tutorial.md) is more critical than ever. Detailed logs help in diagnosing issues specific to device models or OS versions that meet the minimum SDK criteria. We encourage to the developers that start configuring the Logs API without the logs the Microsoft Support team **won't be able** to help debug and troubleshoot the calls.
79
+
Implementing logging as described in the [tutorial about retrieving log files](../../tutorials/log-file-retrieval-tutorial.md) is more critical than ever. Detailed logs help in diagnosing problems specific to device models or OS versions that meet the minimum SDK criteria. We encourage developers to configure logs by using the Logs API. Without the logs, the Microsoft support team can't help debug and troubleshoot the calls.
80
80
81
-
### Track Call ID
81
+
### Track CallID
82
82
83
-
**`CallID`** is the unique ID for a call. It identifies correlated events from all of the participants and endpoints that connect during a single call, in Most cases you use it to review the logs and Microsoft Support team ask for it to help troubleshoot the calls. You **should** track the `CallID` in your telemetry that you configure in your app, you can follow the guidelines in the [troubleshooting guide](../troubleshooting-info.md) to understand how to retrieve it for each platform.
83
+
`CallID` is the unique ID for a call. It identifies correlated events from all of the participants and endpoints that connect during a single call. In most cases, you use it to review the logs. The Microsoft Support team asks for it to help troubleshoot the calls.
84
+
85
+
You should track the `CallID` value in the telemetry that you configure in your app. To understand how to retrieve the value for each platform, follow the guidelines in the [troubleshooting guide](../troubleshooting-info.md).
84
86
85
87
### Subscribe to User Facing Diagnostics and media quality statistics
86
88
87
-
-[User Facing Diagnostics (UFD)](../voice-video-calling/user-facing-diagnostics.md) that can be used to examine various properties of a call to determine what the issue might be during the call that affects your customers.
88
-
-[Media quality statistics](../voice-video-calling/media-quality-sdk.md) examine the low-level audio, video, and screen-sharing quality metrics for incoming and outgoing call metrics. We recommend that you collect the data and send it to your pipeline ingestion after your call ends.
89
+
You can use these features of Azure Communication Services help improve the user experience:
90
+
91
+
-[User Facing Diagnostics](../voice-video-calling/user-facing-diagnostics.md): Examine various properties of a call to determine the cause of problems that affect your customers.
92
+
-[Media quality statistics](../voice-video-calling/media-quality-sdk.md): Examine the low-level audio, video, and screen-sharing quality metrics for incoming and outgoing call metrics. We recommend that you collect the data and send it to your pipeline ingestion after a call ends.
89
93
90
94
### Manage error handling
91
95
92
-
If there are any errors during the call or implementation, the methods return error objects containing error codes. It's crucial to use these error objects for proper error handling and to display alerts. The call states also return error codes to help identify the reason behind call failure. You can refer to [the troubleshooting guide](../troubleshooting-info.md), to resolve any issues.
96
+
If there are any errors during the call or implementation, the methods return error objects that contain error codes. It's crucial to use these error objects for proper error handling and to display alerts. The call states also return error codes to help identify the reasons behind call failures. You can refer to the [troubleshooting guide](../troubleshooting-info.md) to resolve any problems.
93
97
94
98
### Manage video streams
95
99
96
-
Make sure to dispose of the `VideoStreamRendererView` when the video is no longer displayed on the UI. Use `VideoStreamType` to determine the type of the stream.
100
+
Be sure to dispose of `VideoStreamRendererView` when the UI no longer displays the video. Use `VideoStreamType` to determine the type of the stream.
97
101
98
102
### Conduct general memory management
99
103
100
-
**Preallocate Resources**. Initialize your calling client and any necessary resources during your app's startup phase rather than on demand. This approach reduces latency when starting a call.
104
+
**Preallocate resources**. Initialize your calling client and any necessary resources during your app's startup phase rather than on demand. This approach reduces latency in starting a call.
105
+
106
+
**Dispose properly**. Dispose of all call objects after use, to free up system resources and avoid memory leaks. Be sure to unsubscribe from *events* that might cause memory leaks.
101
107
102
-
**Dispose Properly**. Ensure that all call objects are correctly disposed of after use to free up system resources and avoid memory leaks. Make sure to unsubscribe from *events* preventing memory leaks.
108
+
### Consider how processes access the camera or microphone
103
109
104
-
### Manage the behavior of a camera or microphone that another process is using
110
+
On mobile devices, if multiple processes try to access the camera or microphone at the same time, the first process to request access takes control of the device. As a result, the second process immediately loses access to it.
105
111
106
-
It's important to note that on mobile devices if multiple processes try to access the camera or microphone at the same time, the first process to request access will take control of the device. As a result, the second process will immediately lose access to it.
112
+
### Optimize library size
107
113
108
-
### Optimize the APP size using UI Library
114
+
Optimizing the size of libraries in software development is crucial for the following reasons, particularly as applications become more complex and resource intensive:
109
115
110
-
Optimizing the size of libraries in software development is crucial for several reasons, particularly as applications become increasingly complex, and resource-intensive.
116
+
-**Application performance**: Smaller libraries reduce the amount of code that an application must load, parse, and execute. This reduction can significantly enhance the startup time and overall performance of your application, especially on devices that have limited resources.
111
117
112
-
Application Performance: Smaller libraries reduce the amount of code that must be loaded, parsed, and executed by an application. This can significantly enhance the startup time and overall performance of your application, especially on devices with limited resources.
118
+
-**Memory usage**: By minimizing library size, you can decrease the runtime memory footprint of an application. This decrease is important for mobile devices, where memory is often constrained. Lower memory usage can lead to fewer system crashes and better multitasking performance.
113
119
114
-
Memory Usage: By minimizing library size, you can decrease the runtime memory footprint of an application. This is important for mobile devices, where memory is often constrained. Lower memory usage can lead to fewer system crashes and better multitasking performance.
120
+
For more information, see:
115
121
116
122
-[UI Library for iOS](https://github.com/Azure/communication-ui-library-ios/wiki/Calling-Composite-Demo-Application-Size)
117
123
-[UI Library for Android](https://github.com/Azure/communication-ui-library-android/wiki/Calling-Composite-Demo-Application-Size)
0 commit comments