Fix load_sl4a. (#522)

diff --git a/mobly/controllers/android_device_lib/services/sl4a_service.py b/mobly/controllers/android_device_lib/services/sl4a_service.py
index f3748d3..66311a7 100644
--- a/mobly/controllers/android_device_lib/services/sl4a_service.py
+++ b/mobly/controllers/android_device_lib/services/sl4a_service.py
@@ -25,7 +25,8 @@
     `Sl4aClient.doFoo()`.
     """
 
-    def __init__(self, device):
+    def __init__(self, device, configs=None):
+        del configs # Never used.
         self._ad = device
         self._sl4a_client = None
 
diff --git a/tests/mobly/controllers/android_device_lib/services/sl4a_service_test.py b/tests/mobly/controllers/android_device_lib/services/sl4a_service_test.py
index c140b91..9205918 100755
--- a/tests/mobly/controllers/android_device_lib/services/sl4a_service_test.py
+++ b/tests/mobly/controllers/android_device_lib/services/sl4a_service_test.py
@@ -15,6 +15,7 @@
 from future.tests.base import unittest
 
 from mobly.controllers.android_device_lib.services import sl4a_service
+from mobly.controllers.android_device_lib import service_manager
 
 
 @mock.patch('mobly.controllers.android_device_lib.sl4a_client.Sl4aClient')
@@ -25,37 +26,43 @@
         service = sl4a_service.Sl4aService(mock.MagicMock())
         self.assertFalse(service.is_alive)
 
-    def test_start(self, mock_class):
-        mock_client = mock_class.return_value
+    def test_start(self, mock_sl4a_client_class):
+        mock_client = mock_sl4a_client_class.return_value
         service = sl4a_service.Sl4aService(mock.MagicMock())
         service.start()
         mock_client.start_app_and_connect.assert_called_once_with()
         self.assertTrue(service.is_alive)
 
-    def test_stop(self, mock_class):
-        mock_client = mock_class.return_value
+    def test_stop(self, mock_sl4a_client_class):
+        mock_client = mock_sl4a_client_class.return_value
         service = sl4a_service.Sl4aService(mock.MagicMock())
         service.start()
         service.stop()
         mock_client.stop_app.assert_called_once_with()
         self.assertFalse(service.is_alive)
 
-    def test_pause(self, mock_class):
-        mock_client = mock_class.return_value
+    def test_pause(self, mock_sl4a_client_class):
+        mock_client = mock_sl4a_client_class.return_value
         service = sl4a_service.Sl4aService(mock.MagicMock())
         service.start()
         service.pause()
         mock_client.stop_event_dispatcher.assert_called_once_with()
         mock_client.clear_host_port.assert_called_once_with()
 
-    def test_resume(self, mock_class):
-        mock_client = mock_class.return_value
+    def test_resume(self, mock_sl4a_client_class):
+        mock_client = mock_sl4a_client_class.return_value
         service = sl4a_service.Sl4aService(mock.MagicMock())
         service.start()
         service.pause()
         service.resume()
         mock_client.restore_app_connection.assert_called_once_with()
 
+    def test_register_with_service_manager(self, _):
+        mock_device = mock.MagicMock()
+        manager = service_manager.ServiceManager(mock_device)
+        manager.register('sl4a', sl4a_service.Sl4aService)
+        self.assertTrue(manager.sl4a)
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/mobly/controllers/android_device_test.py b/tests/mobly/controllers/android_device_test.py
index a79c119..818d10c 100755
--- a/tests/mobly/controllers/android_device_test.py
+++ b/tests/mobly/controllers/android_device_test.py
@@ -526,6 +526,20 @@
     @mock.patch(
         'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
         return_value=mock_android_device.MockFastbootProxy('1'))
+    @mock.patch('mobly.controllers.android_device_lib.sl4a_client.Sl4aClient')
+    @mock.patch('mobly.utils.get_available_host_port')
+    def test_AndroidDevice_load_sl4a(self, MockGetPort, MockSnippetClient,
+                                     MockFastboot, MockAdbProxy):
+        ad = android_device.AndroidDevice(serial='1')
+        ad.load_sl4a()
+        self.assertTrue(hasattr(ad, 'sl4a'))
+
+    @mock.patch(
+        'mobly.controllers.android_device_lib.adb.AdbProxy',
+        return_value=mock_android_device.MockAdbProxy('1'))
+    @mock.patch(
+        'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+        return_value=mock_android_device.MockFastbootProxy('1'))
     @mock.patch(
         'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
     @mock.patch('mobly.utils.get_available_host_port')