Где взять части андроида

Записки мастера. Где взять запчасть?

Макс Любин

В комментариях к предыдущим статьям меня неоднократно спрашивали где я беру запчасти. В этом материале я решил поделиться этой информацией, благо никакого секрета в этом нет.

Фото взято с сайта topfacts.com

Но прежде чем начать, хотелось бы сделать небольшую ремарку, которая разочарует любителей поискать черную кошку в темной комнате – вся информация, представленная ниже, носит исключительно информационный характер и никакого отношения к рекламе не имеет.

Когда я только начинал заниматься самостоятельным ремонтом, с одной стороны, вопрос поиска запчастей стоял для меня особо остро. С другой стороны, это не было проблемой, потому что ремонты делались редко, для себя любимого, либо для близких родственников, и вопрос времени ожидания не стоял. Самым первым источником запчастей для меня стал знаменитый китайский аукцион, Aliexpress.

Заказанные запчасти ехали ко мне долго и мучительно, и иногда не доезжали. Иногда приезжали не те, и проклиная китайцев я открывал споры и возвращал свои деньги. Чтобы тут же потратить их на такую же запчасть у другого китайского дельца, чем несказанно радовал бизнесменов поднебесной. Так и вижу владельца магазина с Aliexpress сидящего и потирающего руки при виде моего очередного заказа: «О, этот белый лаовай снова несет мне свои денежки!»

Так продолжалось, пока в поисках очередной пустяковой запчасти я не зашел в обычный сервисный центр, чтобы спросить, вдруг она у них есть в наличии, и вдруг они согласятся мне ее продать.

Мне ответили отказом, что в принципе было ожидаемо, но вместо того, чтобы просто выпроводить меня, мастер написал мне на клочке бумаги номер телефона и посоветовал позвонить и спросить там.

Созвонившись, я узнал, что искомая запчасть есть у человека, и он даже готов продать мне ее за вполне вменяемую цену (наценка составила порядка 150-200 рублей от цены с Aliexpress).

Договорились о встрече на следующий день. Мне сказали подойти к торговому центру, встать в определенном месте и набрать этот номер.

На встречу я ехал со странными чувствами. Происходящее напоминало детектив.

Однако, на месте все оказалось просто. Там уже ждало двое таких же как я, начинающих рыцарей отвертки и паяльника.

Пришел человек, поговорил с каждым по очереди, выдав нам искомые запчасти, посоветовал не снимать пломбы и пленки до проверки запчасти на работоспособность, получил свое вознаграждение и был таков.

Потом я еще не раз и не два обращался к нему за запчастями, и долгое время он оставался основным моим поставщиком, предлагая хорошие цены и, что еще важнее, хорошее качество запчастей.

Как обычно бывает, если человек любит то, что делает, бизнес растет. На данный момент, это довольно крупный интернет-магазин, в котором я по старой памяти продолжаю время от времени покупать железки. Несмотря на то, что с годами оборот ощутимо вырос, качество не стало хуже. Большим преимуществом для меня является то, что находится магазин в моем городе. При этом у магазина есть отправка запчасти по России, и можно делать заказы по почте.

Адрес магазина простой и незамысловатый: ul-phone.ru

Сарафанное радио работало, и знакомые родственников и друзей начали нести все больше и больше устройств на ремонт. Не всегда нужная запчасть оказывалась в наличии в ul-phone, что и вынудило меня искать новых поставщиков.

Поразмыслив, что доставка по России занимает меньше времени, чем доставка из Китая, я стал спрашивать о том где берут запчасти знакомые мастера. К тому моменту со многими мастерами города я познакомился при покупке запчастей в магазине, о котором писал выше.

Тогда мне посоветовали интернет-магазин mobparts.ru.

Читайте также:  Оптимизация для андроид планшет

Приятно удивила скорость доставки. Сделав первый заказ, спросил о том, когда я смогу получить свою железку в своем городе. Мне ответили, что в течение двух дней. Тогда я не поверил, но в итоге так и получилось. Из-за стоимости доставки общая стоимость часто получалась немного выше, чем у других поставщиков, но, когда в других местах нет, выбирать не приходится. На данный момент редко пользуюсь услугами этого поставщика, но оперативность обработки заказа и скорость доставки иногда очень выручают.

Несмотря на наличие большого количества поставщиков, я не переставал пользоваться любимым мной eBay для заказа запчастей, которых обычно не бывает у российских поставщиков.

Это и не удивительно, ведь российские поставщики ориентированы на запчасти для моделей, продающихся на территории России. Какой смысл заказывать партию запчастей для американской модификации телефона, которую может быть никогда и не раскупят? Поэтому eBay и посредник, услугами которого я пользуюсь до сих пор, периодически выручают.

Не всегда интернет-магазин остается только виртуальным. Именно так произошло со следующим поставщиком, о котором я узнал после того, как буквально случайно наткнулся на их павильон в только что отреставрированном торговом комплексе своего города. Речь идет о магазине запчастей green-spark.ru

В комментариях к одним из первых «записок мастера» я завуалировано советовал этот магазин, назвав его «зеленые искры» (именно так переводится название).

Основным преимуществом этого поставщика стала шаговая доступность магазина и наличие большого количества самых разнообразных запчастей и инструментов. Оказалось, что магазин есть во многих крупных городах России. У меня бывали ситуации, когда нужной запчасти не было ни у одного местного поставщика, включая местное представительство «зеленых искр» и тогда я делал заказ в их интернет-магазине, и мне привозили запчасть за сутки, просто переместив ее из ближайших Самары или Казани, и передав с маршрутным такси.

Нюансы

Практически у всех продавцов, при покупке запчасти действует одно правило, соблюдение которого поможет сохранить вам и деньги, и нервные клетки – прежде чем устанавливать запчасть, необходимо проверить ее «подкинув на соплях», то есть подключить без сборки и установки, не снимая пленок и не повреждая пломб. Это правило придумано не для того, чтобы подловить невнимательного мастера и не вернуть ему деньги, а потому что иначе продавец не сможет понять, его ли это запчасть, а еще, он потом не сможет вернуть ее своему поставщику.

С одной стороны, можно резонно возразить, что это проблема продавца, продавшего вам бракованную деталь, но с другой стороны, как это часто бывает в закрытых сообществах людей, объединенных одним делом, «все друг друга знают», и состоят если не в дружеских, то в приятельских отношениях и, так или иначе сталкиваются друг с другом. Поэтому само собой вырабатывается понимание правила «ты мне, я тебе».

Заключение

Еще каких-то пять лет назад в регионах достать нужную запчасть было гораздо сложнее, и зачастую одними из немногих, если не единственными способами были aliexpress или московские ларьки «на Горбушке». Со временем количество электроники на руках у людей выросло в разы, а значит рынок запчастей стал гораздо больше. Благодаря этому, на данный момент, купить запасную часть для своего гаджета можно почти на каждом шагу. Тут тебе и целая россыпь интернет-магазинов, и частники, и группы в социальных сетях. Выбирай не хочу.

Со временем, у каждого появляются проверенные места и свои продавцы, к которым обращаешься снова и снова. Обрастаешь нужными людьми, и вот уже тебе «по знакомству» достают на 100% оригинальную запчасть, которую не найти и не купить в другом месте. Вот уже знакомые мастера предлагают тебе купить «за копейки, на запчасти» устройство, от которого отказался клиент, а у тебя как раз лежит такой же телефон, на который ты уже отчаялся найти редкую железку.

Читайте также:  Install как удалить с андроида

У каждого список проверенных поставщиков может быть своим, и впечатления от одного и того же магазина могут отличаться, однако никогда не следует забывать, что везде работают люди, которые готовы сотрудничать и помогать, если вы к этому готовы.

Источник

Фрагменты

Существует два основных подхода в использовании фрагментов.

Первый способ основан на замещении родительского контейнера. Создаётся стандартная разметка и в том месте, где будут использоваться фрагменты, размещается контейнер, например, FrameLayout. В коде контейнер замещается фрагментом. При использовании подобного сценария в разметке не используется тег fragment, так как его нельзя менять динамически. Также вам придётся обновлять ActionBar, если он зависит от фрагмента. Здесь показан такой пример.

Второй вариант — используются отдельные разметки для телефонов и планшетов, которые можно разместить в разных папках ресурсов. Например, если в планшете используется двухпанельная разметка с двумя фрагментами на одной активности, мы используем эту же активность для телефона, но подключаем другую разметку, которая содержит один фрагмент. Когда нам нужно переключиться на второй фрагмент, то запускаем вторую активность.

Второй подход является наиболее гибким и в целом предпочтительным способом использования фрагментов. Активность проверяет в каком режиме (свои размеры) он запущен и использует разную разметку из ресурсов. Графически это выглядит следующим образом.

Основные классы

Сами фрагменты наследуются от androidx.fragment.app.Fragment. Существует подклассы фрагментов: ListFragment, DialogFragment, PreferenceFragment, WebViewFragment и др. Не исключено, что число классов будет увеличиваться, например, появился ещё один класс MapFragment.

Для взаимодействия между фрагментами используется класс android.app.FragmentManager — специальный менеджер по фрагментам.

Как в любом офисе, спецманагер не делает работу своими руками, а использует помощников. Например, для транзакций (добавление, удаление, замена) используется класс-помощник android.app.FragmentTransaction.

Для сравнения приведу названия классов из библиотеки совместимости:

  • android.support.v4.app.FragmentActivity
  • android.support.v4.app.Fragment
  • android.support.v4.app.FragmentManager
  • android.support.v4.app.FragmentTransaction

Как видите, разница в одном классе, который я привёл первым. Он используется вместо стандартного Activity, чтобы система поняла, что придётся работать с фрагментами. На данный момент студия создаёт проект на основе ActionBarActivity, который является подклассом FragmentActivity.

В одном приложении нельзя использовать новые фрагменты и фрагменты из библиотеки совместимости.

В 2018 году Гугл объявила фрагменты из пакета androd.app устаревшими. Заменяйте везде на версию из библиотеки совместимости. В 2020 году уже используют пакет androidx.fragment.app.

В версии Support Library 27.1.0 появились новые методы requireActivity() и requireContext(), которые пригодятся при написании кода, когда требуется наличие активности и нужно избежать ошибки на null.

Общий алгоритм работы с фрагментами будет следующим:

У каждого фрагмента должен быть свой класс. Класс наследуется от класса Fragment или схожих классов, о которых говорилось выше. Это похоже на создание новой активности или нового компонента.

Также, как в активности, вы создаёте различные методы типа onCreate() и т.д. Если фрагмент имеет разметку, то используется метод onCreateView() — считайте его аналогом метода setContentView(), в котором вы подключали разметку активности. При этом метод onCreateView() возвращает объект View, который является корневым элементом разметки фрагмента.

Разметку для фрагмента можно создать программно или декларативно через XML.

Создание разметки для фрагмента ничем не отличается от создания разметки для активности. Вот отрывок кода из метода onCreateView():

Глядя на этот код, вы должные понять, что фрагмент использует разметку из файла res/layout/first_fragment.xml, которая содержит кнопку с идентификатором android:id=»@+id/button_first». Здесь также прослеживается сходство с подключением компонентов в активности. Обратите внимание, что перед методом findViewById() используется view, так как этот метод относится к компоненту, а не к активности, как мы обычно делали в программах, когда просто опускали имя активности. Т.е. в нашем случае мы ищем ссылку на кнопку не среди разметки активности, а внутри разметки самого фрагмента.

Нужно помнить, что в методе inflate() последний параметр должен иметь значение false в большинстве случаев.

FragmentManager

Класс FragmentManager имеет два метода, позволяющих найти фрагмент, который связан с активностью:

Читайте также:  Создатель рингтонов для андроид 4pda

findFragmentById(int id) Находит фрагмент по идентификатору findFragmentByTag(String tag) Находит фрагмент по заданному тегу

Методы транзакции

Мы уже использовали некоторые методы класса FragmentTransaction. Познакомимся с ними поближе

add() Добавляет фрагмент к активности remove() Удаляет фрагмент из активности replace() Заменяет один фрагмент на другой hide() Прячет фрагмент (делает невидимым на экране) show() Выводит скрытый фрагмент на экран detach() (API 13) Отсоединяет фрагмент от графического интерфейса, но экземпляр класса сохраняется attach() (API 13) Присоединяет фрагмент, который был отсоединён методом detach()

Методы remove(), replace(), detach(), attach() не применимы к статичным фрагментам.

Перед началом транзакции нужно получить экземпляр FragmentTransaction через метод FragmentManager.beginTransaction(). Далее вызываются различные методы для управления фрагментами.

В конце любой транзакции, которая может состоять из цепочки вышеперечисленных методов, следует вызвать метод commit().

Аргументы фрагмента

Фрагменты должны сохранять свою модульность и не должны общаться друг с другом напрямую. Если один фрагмент хочет докопаться до другого, он должен сообщить об этом своему менеджеру активности, а он уже передаст просьбу другому фрагменту. И наоборот. Это сделано специально для того, чтобы было понятно, что менеджер тут главный и он не зря зарплату получает. Есть три основных способа общения фрагмента с активностью.

  • Активность может создать фрагмент и установить аргументы для него
  • Активность может вызвать методы экземпляра фрагмента
  • Фрагмент может реализовать интерфейс, который будет использован в активности в виде слушателя

Фрагмент должен иметь только один пустой конструктор без аргументов. Но можно создать статический newInstance с аргументами через метод setArguments().

Доступ к аргументам можно получить в методе onCreate() фрагмента:

Динамически загружаем фрагмент в активность.

Если активность должна выполнить какую-то операцию в фрагменте, то самый простой способ — задать нужный метод в фрагменте и вызвать данный метод через экземпляр фрагмента.

Вызываем метод в активности:

Если фрагмент должен сообщить о своих действиях активности, то следует реализовать интерфейс.

Управление стеком фрагментов

Фрагменты, как и активности, могут управляться кнопкой Back. Вы можете добавить несколько фрагментов, а потом через кнопку Back вернуться к первому фрагменту. Если в стеке не останется ни одного фрагмента, то следующее нажатие кнопки закроет активность.

Чтобы добавить транзакцию в стек, вызовите метод FragmentTransaction.addToBackStack(String) перед завершением транзакции (commit). Строковый аргумент — опциональное имя для идентификации стека или null. Класс FragmentManager имеет метод popBackStack(), возвращающий предыдущее состояние стека по этому имени.

Если вы вызовете метод addToBackStack() при удалении или замещении фрагмента, то будут вызваны методы фрагмента onPause(), onStop(), onDestroyView().

Когда пользователь нажимает на кнопку возврата, то вызываются методы фрагмента onCreateView(), onActivityCreated(), onStart() и onResume().

Рассмотрим пример реагирования на кнопку Back в фрагменте без использования стека. Активность имеет метод onBackPressed(), который реагирует на нажатие кнопки. Мы можем в этом методе сослаться на нужный фрагмент и вызвать метод фрагмента.

Теперь в классе фрагмента прописываем метод с нужным кодом.

Более желательным вариантом является использование интерфейсов. В некоторых примерах с фрагментами такой приём используется.

Интеграция Action Bar/Options Menu

Фрагменты могут добавлять свои элементы в панель действий или меню активности. Сначала вы должны вызвать метод Fragment.setHasOptionsMenu() в методе фрагмента onCreate(). Затем нужно задать настройки для методов фрагмента onCreateOptionsMenu() и onOptionsItemSelected(), а также при необходимости для методов onPrepareOptionsMenu(), onOptionsMenuClosed(), onDestroyOptionsMenu(). Работа методов фрагмента ничем не отличается от аналогичных методов для активности.

В активности, которая содержит фрагмент, данные методы автоматически сработают.

Если активность содержит собственные элементы панели действий или меню, то следует позаботиться, чтобы они не мешали вызовам методам фрагментов.

Код для активности:

Код для фрагмента:

Связь между фрагментом и активностью

Экземпляр фрагмента связан с активностью. Активность может вызывать методы фрагмента через ссылку на объект фрагмента. Доступ к фрагменту можно получить через методы findFragmentById() или findFragmentByTag().

Источник

Оцените статью