Pull to refresh
92
2

User

Send message

На удивление мало

<manifest>
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION"/>
    <uses-permission android:name="android.permission.ENFORCE_UPDATE_OWNERSHIP"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
    <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
    <uses-permission android:name="android.provider.Telephony.SMS_RECEIVED"/>
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="ru.sberbank.mobile.sberid.BIND_PERSONALIZATION_SERVICE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="com.android.vending.BILLING"/>
    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-feature android:name="android.hardware.sensor.light" android:required="false"/>
    <uses-feature android:name="android.hardware.sensor.compass" android:required="false"/>
    <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false"/>
    <uses-feature android:name="android.hardware.sensor.barometer" android:required="false"/>
    <uses-feature android:name="android.hardware.sensor.proximity" android:required="false"/>
</manifest>

Генеративный ИИ не подходит для точных наук. "Формулы" на КДПВ - бессмысленная белиберда, а кто даст гарантии, что и на уроках бот не будет галлюционировать? Да и ученик легко может "заболтать" бота и убедить его, что cos(pi)=4.

Возможно, не дали бюджет на подписки. Это ж надо издателям каждой игры крупно отсыпать, миллионов 100-300, чтобы они разрешили свою драгоценную игру запускать безлимитно. А сделали так, как безопасно для издателя - мы вашу игру продаём через свой магазин, вам от этого лишь халявный канал продаж.

Это подход примерно как "давайте не использовать мьютексы для доступа к общим данных, пока сами лично не столкнёмся с гонкой данных". Обычно же и без них всё работает. Вот когда на нашем проекте возникнут реальные проблемы, тогда и будем учитывать этот аспект.

Слишком дорого тестировать каждый билд. Например, UB сработает, если определённая инструкция располагается на адресе, кратном 16.

И вот, мы всё протестировали, потом появляется задачка доделать одну мелочь, которая никак не связана с UB-функцией. Новый код тестируется - там всё хорошо. А старый код сломался, потому что попал на другой адрес.

Не надо цепляться за символ йены. Проблема в коде 0x1B, и этот код чисто управляющий, как табуляция или перевод строки, даже не имеет знака в unicode. Все управляющие символы (коды 00-1F) надо обязательно экранировать.

больше нагрузка на icache

Да, но код интерпретатора - это всё, что нужно положить в icache. В процессорах кеши растут, чем-то надо заполнять. Есть шанс, что даже в варианте расхода x12 поместится кусок с "горячим" набором опкодов.

и усложниться работа предсказателя ветвлений

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

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

А если на каждую глубину стека своя ветка кода, предсказателю ещё больше информации - если на стеке 2 элемента - в этой программе после ADD будет PUSH, а если 3 элемента - будет CMP.

Интересно. Я знаю, что зелёный банк официально сотрудничает с Каспером и интегрирует его в своё приложение.
А RuStore... Скачал apk с официального сайта, декомпилировал его утилитой apktool и слово kaspersky нашлось в 462 файлах (из 54057).

У меня сети meta давно полностью заблокированы. В отличие от гугла.

Молодцы, провели большую работу по интеграции.
Главное, чтобы у них хватило запала поддерживать. А то новые версии Android пекутся каждый год, как горячие пирожки. И выйдет, как в Delphi в Windows - Microsoft выпустило DX SDK версии 9, на в комплекте с Delphi портированные хидеры только на DX5.

Скорее, придут ваши же клиенты вам бить морду за мошенничество.
Потому что на одном провайдере работает bye-dpi, на другом не работает.
На одном и том же провайдере сегодня работает, завтра не работает. А послезавтра все сети гугла вообще внесут null-route, как инстаграмм.
На этом строить бизнес - это уровень АО МММ.

Добавить-то понятно можно. Оно без изменений перейдёт в apk-файл после компиляции.
Интересно, как это вызывается. Как создать класс из jar в delphi-синтаксисе, можно ли от него отнаследоваться, чтобы получить delphi-класс.

Видимо, масштабы несопоставимы. Условного Дудя из России посмотрит 7 миллионов, есть ли англоязычный ролик, который наберёт столько просмотров из РФ?

Тут только кода интерпретатора кратно больше (кеш инструкций быстрее закончится), всё остальное быстрее будет работать.

Для простоты предположим, что в архитектуре всего 2 инструкции:
PUSH <const>
ADD

Делаем для этих инструкций N разных обработчиков, считая что i-тый обработчик работает со случаем, когда первые i ячеек стека лежат в регистрах x1, x2, ... xi

Помещаем эти обработчики в таблицы JmpTbl0, JmpTbl1, ... JmpTblN

И тогда обработчик PUSH для ветки 0
MOV x1, <const>
jmp JmpTbl1[nextopcode] ; переходим к ветке N=1

Обработчик PUSH для ветки 1
MOV x2, <const>
jmp JmpTbl2[nextopcode] ; переходим к ветке N=2

Обработчик ADD ветки 2 - оба аргумента в регистрах, результат оставляем тоже в регистре
ADD x1, x2, x1
jmp JmpTbl1[nextopcode] ; переходим к ветке N=1

Обработчик ADD ветки 1 - один аргумент в регистре, второй вытеснен в память
ADD x1, [sp], x1
INC sp
jmp JmpTbl1[nextopcode] ; остаёмся на ветке N=1

Муравьеворот (спираль смерти, карусель смерти) — природное явление, состоящее в том, что один или небольшая группа муравьёв, на первый взгляд совершенно беспричинно, начинает бегать по замкнутому кругу, постепенно вовлекая в свой бесконечный цикл всё больше и больше других муравьёв

Это же адреса гипертекстового векторного Фидонета 2:5020/54.46 и иже с ними.

Сядет на пенёк, закурит, и помашет рукой вслед улетающему к Земле кораблю.

Со стороны телевизора - да. А со стороны смартфона, некоторые производители специально убирают функцию трансляции с моделей нижнего ценового диапазона, позиционируя её как фичу "флагманов". Я помню, меня один знакомый пытал, как подружить бюджетник Galaxy J4 с ТВ, в итоге он поменял смарт.

Т.е. их можно использовать в клиенте. Именно так это и подразумевалось делать. Мы описываем классы таблиц в отдельных модулях, или даже целую схему

Ну имеется ввиду, что uses SQLG.Field, SQLG.Table хочется вообще убрать с клиента. Хотя, учитывая скорость компиляции Delphi и то, что компилятор вырежет всё лишее, не должно быть проблемой.

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

В EF тоже с этим нет проблем, под это даже придумали концепцию "анонимных классов". То есть, язык сильно расколбасили конкретно под ORM-ы и работу с данными

   var clientShortInfo = dbContext.Orders
      .Where(order => order.Date < DateTime.Today.AddDays(-2))
      .Select(order => new { order.Id, order.Client.Fio, order.Client.City.Name });

и будет конкретный SQL select с указанными полями и join-ами. Но при этом более эффективный по памяти, т.к. используется анонимный класс с конкрентыми типизированными полями, а не абстрактный dataset, у которого все поля типа Variant, и плюс сверху - метаинформация.

А как узнать, что такая возможность в телевизоре есть?

Смотреть спецификации ТВ и смарта. Поддержка MirrorLink, Miracast и т.п., не знаю, что сейчас актуально, давно не интересовался.

Может получиться, что ТВ поддерживает одно, а смартфон - другое. Ещё, у Samsung есть свои протоколы для смартфонов и телевизоров.

1
23 ...

Information

Rating
1,326-th
Location
Россия
Registered
Activity